Страница 1 из 2

Ошибки в консольном приложении (шаблоны…векторы)

Добавлено: 17 сен 2009, 15:16
б_д_в
Привет!

В консольном приложении выдает ошибки на следующую строчку кода:

Код: Выделить всё

template <class Iterator>
vector<list<typename Iterator::value_type> > Cluster(const Iterator begin, const Iterator end, int M)
{
	………………………….
}
Ошибки:
1. error C2143: syntax error : missing ';' before '<'
2. error C2501: 'vector' : missing storage-class or type specifiers
3. error C2059: syntax error : ';'
4. error C2143: syntax error : missing ';' before '<'
5. error C2653: 'Iterator' : is not a class or namespace name

Что здесь нужно изменить? Вроде бы ошибки простенькие, но что-то не получается исправить. Возможно вопрос «широко» задан, если что нужно детализировать – напишите.

Заранее благодарю.

Re: Ошибки в консольном приложении (шаблоны…векторы)

Добавлено: 17 сен 2009, 15:42
Romeo
Может так для начала?

Код: Выделить всё

#include <vector>
#include <list>
using namespace std;

Re: Ошибки в консольном приложении (шаблоны…векторы)

Добавлено: 21 сен 2009, 11:34
б_д_в
Благодарю, все исправил кроме одной ошибки.
Компилятор ругается на ф-ию randomize(); (error C2065: 'randomize' : undeclared identifier) в int main(int argc, char* argv[]).
Т.е.

Код: Выделить всё

int main(int argc, char* argv[])
{
randomize();//error

…………………..
return 0;
}
Пример взят из книги, написан очень, в общем (видимо, рассчитан на сильных программистов, которые разберутся).
Я знаю, что означает эта ошибка, но «победить» пока не могу, то ли нужен какой-то заголовочный файл или библиотека. Возможно, её нужно как-то самому расписать, и это связано с рандомизацией…
Если кто знает, подскажите, пожалуйста.

Re: Ошибки в консольном приложении (шаблоны…векторы)

Добавлено: 21 сен 2009, 12:14
Romeo
randomize - это паскалевская функция, если мне не изменяет память. Используй srand((unsigned)time(0));

Re: Ошибки в консольном приложении (шаблоны…векторы)

Добавлено: 21 сен 2009, 16:12
_SG
В соседнем топике я тоже на randomize() нарвался. Разобрался.
randomize() работает в Борландовских компиляторах С (по крайней мере до версии 3.1)
там она определена как
inline void _Cdecl randomize(void) { srand((unsigned) time(NULL)); }
в stdlib.h

Re: Ошибки в консольном приложении (шаблоны…векторы)

Добавлено: 22 сен 2009, 22:05
б_д_в
Согласен ... но выдало error C2065: 'random' : undeclared identifier. Я так понимаю, что random(int M) аналогично rand() в MS Visual C++?

Re: Ошибки в консольном приложении (шаблоны…векторы)

Добавлено: 22 сен 2009, 22:16
Newbie
в каком учебнике\источнике нашел что в с++ есть функция random ?

Re: Ошибки в консольном приложении (шаблоны…векторы)

Добавлено: 24 сен 2009, 18:24
б_д_в
"С++ мастер-класс. 85 нетривиальных проектов, решений и задач".

Re: Ошибки в консольном приложении (шаблоны…векторы)

Добавлено: 24 сен 2009, 22:47
_SG
Какой компилятор? В 90-е годы очень были популярны от Борланда. (Проффи Ватком юзали или Вижуал Эйдж).

Re: Ошибки в консольном приложении (шаблоны…векторы)

Добавлено: 24 сен 2009, 23:17
Newbie
Что самое интересное книга 2007 года издания. Компиляторы 90-ых точно не юзаются в книге)

б_д_в скажи номер примера из этой книги.