2017-06-12 94 views
-3

在我的入口cpp文件中,以下工作。在頭文件中聲明並初始化一個向量

include <vector> 
#define ROWS 10 
#define COLS 20 

std::vector<std::vector<int>> exampleVector (ROWS, std::vector<int>(COLS, 10)); 

但是,如果我把我的example.h文件文件相同的代碼,我得到

  • 「預期類型說明符」的行
  • 上COLS
  • 「預期‘)’」
  • 「預期類型說明符」on 10
  • 「預計a」;「第二)

我知道我可能只是把

std::vector<std::vector<int> exampleVector; 

在我example.h文件文件和

exampleVector.resize(ROWS, std::vector<int>(COLS, 10)); 

在我example.cpp文件。

然而,對於代碼的清潔程度,我想在我的頭文件以及我的固定陣列。

char exampleName[MAX_NAME_LENGTH] 
int exampleConfig[MAX_LEVELS] 

回答

-2

有一些問題與您的代碼示例(收盤>失蹤?),但忽略了,答案是:的一個std::vector的大小不能在定義時指定。

在另一方面,std::array的大小可以是:

#include <array> 

#define ROWS 10 
#define COLS 20 

std::array<std::array<int, ROWS>, COLS> exampleArray; 
+0

完美!非常感謝 –

+0

道歉@Sam Dean,我可能回答了錯誤的問題。這沒有解決頭文件/源文件問題,所以請注意,這可能是一個紅鯡魚。 –

+1

這不可能是更錯誤的。 '矢量'的構造函數'vector(size_type,T)'是做什麼的? –