2014-04-28 33 views
-3

所以我仍然在學習C++,我無法弄清楚我做錯了什麼。我使用的是Code :: Blocks IDE,儘管包含了矢量和數組頭,但它給了我一大串錯誤信息,並且在此範圍內沒有聲明任何內容。該代碼是非常基本的:爲什麼我的項目不包含向量或數組?

#include <iostream> 
#include <vector> 
#include <array> 
#include <string> 

using namespace std; 

int main() 
{ 
string b = const, 10; 
vector<string> string1(b); 
array<string, b> string2; 
return 0; 
} 

確定,根據記錄,這是我試圖做:

「聲明10個的字符串對象矢量對象和10串 對象數組對象。顯示必要的頭文件並且不要使用。使用一個const爲 的字符串數。「

+4

'string b = const,10;' - 你期望那行該怎麼辦? –

+3

'main'中代碼的唯一代碼是'return 0;' –

+2

我建議你選擇一個[關於C++的壯觀書籍](http://stackoverflow.com/questions/388242/the-definitive- c-book-guide-and-list),並看看一個輝煌的[在線C++參考](http://en.cppreference.com/w/cpp)。 –

回答

3

你的錯誤是,一行行...

string b = const, 10; 

這一個根本沒有任何意義,我不知道你期待在那裏。改爲將字符串分配給b

string b = "whatever"; 

vector<string> string1(b); 

vector<T>不包含構造函數,一個T。在你的情況下,沒有構造函數需要string。如果你的編譯器支持的話,你可以使用:

vector<string> string1 = {b}; 

如果沒有,很容易只是......

vector<string> string1; 
string1.push_back(b); 

array<string, b> string2; 

array<T,size_t>需要Tstring)和元素數量size_t作爲其模板參數。 bstring,而不是size_t,所以這沒有任何意義。將大小作爲第二個模板參數傳遞。


每@Benjamin林德利的評論,也許你的意思是聲明const int與在第一線的10值。如果是這樣的話,那麼...

int main() 
{ 
    const int b = 10; 
    vector<string> string1(b); 
    array<string, b> string2; 
    return 0; 
} 
+0

我想也許第一行的意圖是聲明一個'const'整數用於矢量和數組的大小。這意味着唯一需要糾正的是第一行。雖然我不知道'string'是怎麼進入的。 –

+0

是的,你可能是對的。我會編輯它。 –

相關問題