2010-03-02 2 views
4

Я хочу, чтобы создать список очередей в C++, но компилятор дает мне некоторые загадочные сообщения:Использование STL в список объектов

#include <list> 
#include <queue> 

class Test 
{ 
    [...] 
    list<queue> list_queue; 
    [...] 
} 

Выход:

error C2143: syntax error : missing ';' before '<' 
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
error C2238: unexpected token(s) preceding ';' 

Это дает мне ту же ошибку, даже если Я использую int как шаблонный параграф. Что происходит?

(кстати, я использую VC++ 2008 EE)

ответ

8

queue шаблонный класс, так что вам необходимо указать тип элемента, содержащегося в очередях. Кроме того, - не является символом юридического идентификатора в C++; возможно, вы имели в виду _?

std::list<std::queue<SOME_TYPE_HERE> > list_queue; 
+0

избил меня на 17 секунд :) –

+0

Да, заменил '-' на' _'. Глупый Лисп: P. – moatPylon

+0

@MeDiCS: Я понял, что это было lisp: D –

1

также «с использованием патезраса», и там должно быть точка с запятой после определения класса

280Z28 является правильным, что «с помощью» в файле заголовок является плохой идеей для производства кода. Тем не менее, это по-прежнему разумный шаг по устранению неполадок, чтобы быстро увидеть, является ли основной проблемой область поиска идентификатора.

+0

Я всегда забыл это ^^ ' – moatPylon

+4

-0 для 'using namespace std;' - вместо этого должен быть 'std :: list' и' std :: queue'. –

+0

Почему? Это не похоже на то, что у нас будет много конфликтов (плюс, я ненавижу печатать) – moatPylon

Смежные вопросы