2011-10-03 80 views
0

我有一個小程序,使用「試圖使用」#include <queue>。我使用Ubuntu操作系統,但它說:包括<queue>在Ubuntu操作系統的C++程序中

fatal error: queue: No such file or directory 

任何想法,或我需要做什麼,使其工作?

#include <queue> 
using namespace std; 


int main() 
{ 
    queue<int> Q; 
    Q.push(1); 
    Q.push(2); 
    Q.push(3); 
    cout << Q.front(); 
    Q.pop(); 
    cout << Q.front(); 
    Q.pop(); 
    cout << Q.front(); 
    Q.pop(); 

    return 0; 
} 
+1

你是如何編譯的? – Colin

+0

嘗試使用非標準向後兼容性頭文件stack.h?你有其他的std組件嗎? –

+0

我正在編譯gcc queuetest.c – user975582

回答

6

您正在使用C編譯器編譯您的C++程序(使用.c擴展名保存)。

由於您使用的是C++ STL(和命名空間std),所以這不起作用。

編譯使用g++代替:

g++ queuetest.cpp -o queuetest 

docs for compiling C++。考慮將您的分機更改爲.cpp

你也想#include <iostream>cout

+0

請注意'.c'(所用OP的擴展,默認爲C語言)和'.C'(大寫,默認爲C++)。 –

+0

@本:對。我的意思是C語言,但目前還不清楚;我會解決這個問題。謝謝:-) – Cameron

+0

我認爲g ++可以識別'.C'或'.cpp'來表示C++代碼。如果你的源文件可能被移植到Windows,那麼'.cpp'可能會更好,它的大小寫不區分大小寫。 (文件系統是保留大小寫的,但仍然有可能搞砸了。) –

相關問題