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를 사용합니다. 무슨 일이야? 당신이 당신의 대기열에 포함 된 요소의 유형을 지정해야합니다 그래서 (BTW, 내가 VC++ 2008 EE를 사용하고 있습니다)

답변

8

queue는뿐만 아니라 템플릿 클래스입니다. 또한 -은 C++에서 유효한 식별자 문자가 아닙니다. 아마도 _을 의미하셨습니까?

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

17 초 쳐봐 :) –

+0

그래,'-'로 대체. 어리석은 Lisp : P. – moatPylon

+0

@MeDiCS : 나는 그것이 리스프라고 생각했다 : D –

1

또한 "네임 스페이스를 사용하여 표준"및

280Z28는 헤더 파일에 "사용"하는 것이 옳다 클래스 정의 뒤에 세미콜론이 있어야 생산 코드에 대한 나쁜 생각이다. 주요 문제가 식별자 검색 범위인지 신속하게 확인하는 것은 여전히 ​​합리적인 문제 해결 단계입니다.

+0

'namespace std;'에 대해서 ^^ ' – moatPylon

+4

-0을 잊어 버렸습니다. 대신에'std :: list'와'std :: queue'가되어야합니다. –

+0

왜? 우리가 많은 갈등을 겪을 것 같지 않습니다 (더하기, 타이핑하는 것을 싫어합니다). – moatPylon