2017-06-12 86 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)'是做什么的? –