Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.06.2010, 18:35   #1
Пaвeл
Пользователь
 
Аватар для Пaвeл
 
Регистрация: 08.11.2008
Сообщений: 47
Стрелка Ошибка компиляции

Доброго времени суток!
Я недавно начал прогать на С++ и не совсем понимаю ошибки компиляции.
Помогите пожалуйста откомпилировать программу.
Заранее спасибо.

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

class HashTable
{
long long key;
string s;

public:

HashTable()
{
key = 0;
s = "";
}

bool operator > (HashTable & b)
{
return (key > b.key);
}

bool operator < (HashTable & b)
{
return (key < b.key);
}

bool operator == (HashTable & b)
{
return (key == b.key);
}

bool operator != (HashTable & b)
{
return (key != b.key);
}

};

HashTable MakeTable(string & s, int start, int length)
{
HashTable h;
int x = 1, p = 23;

for (int i = start + length - 1; i >= start; i--)
{
h.key += s[i] * x;
x *= p;
h.s = s[i] + h.s;
}

return h;
}

HashTable NextHash(HashTable h, char c)
{
int p = 23;

for (int i = 0; i < h.s.size(); i++)
p *= 23;

h.key -= h.s[1] * p;
h.key *= 23;
h.key += c;

return h;
}

int main()
{
string example;

cin >> example;

vector<HashTable> v;

for (int i = 1; i <= example.size(); i++)
{
v.push_back( MakeTable(example, 0, i) );
for (int j = 1; j <= example.size() - i; j++)
v.push_back( NextHash( v[v.size()-1], example[j + i - 1] ) );
}

sort(v.begin(), v.end());

for (int i = 0; i <= v.size(); i++)
if (v[i] != v[i+1])
cout << v[i].s << endl;

return 0;
}
Я не знаю, как должно быть, но вы делаете всё не правильно ©
Пaвeл вне форума
Старый 25.06.2010, 19:09   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Во-первых, используйте тег [CODE]. А ошибка у вас тут такая - члены класса без явного спецификатора доступа по умолчанию являются private:
Код:
class HashTable
{
long long key;
string s;

public:

HashTable()
{
key = 0;
s = "";
}
/* ... */
А также у вас тут с десяток предупреждений несоответствия sign/unsign.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума
Старый 25.06.2010, 19:22   #3
Пaвeл
Пользователь
 
Аватар для Пaвeл
 
Регистрация: 08.11.2008
Сообщений: 47
По умолчанию

Спасибо огромное! Очень помогли.
Я не знаю, как должно быть, но вы делаете всё не правильно ©
Пaвeл вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка компиляции ALEX INCORPORATEED Помощь студентам 7 14.09.2012 00:46
C++ ошибка компиляции Seil_29 Помощь студентам 9 20.12.2009 22:23
Ошибка компиляции ImmortalAlexSan C++ Builder 3 20.12.2009 21:19
Ошибка компиляции luk4196 Помощь студентам 4 30.11.2009 23:14
Ошибка компиляции С++ jeka101 Общие вопросы C/C++ 3 27.03.2009 19:16