C++ 在头文件中声明并初始化向量

C++ 在头文件中声明并初始化向量,c++,c++11,initialization,header-files,stdvector,C++,C++11,Initialization,Header Files,Stdvector,在我的输入cpp文件中,以下工作 include <vector> #define ROWS 10 #define COLS 20 std::vector<std::vector<int>> exampleVector (ROWS, std::vector<int>(COLS, 10)); etc示例代码有问题(关闭缺失?),但忽略此问题,答案是:无法在定义时指定std::vector的大小 另一方面,std::array的大小可以是: #in

在我的输入cpp文件中,以下工作

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

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

etc

示例代码有问题(关闭
缺失?),但忽略此问题,答案是:无法在定义时指定
std::vector
的大小

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

#include <array>

#define ROWS 10
#define COLS 20

std::array<std::array<int, ROWS>, COLS> exampleArray;
#包括
#定义第10行
#定义COLS 20
std::数组示例数组;

完美!非常感谢Sam Dean,我可能回答错问题了。这对解决头文件/源文件问题没有任何作用,因此请注意,这可能是一种转移注意力的做法。它的错误再大不过了。
vector(size\u-type,T)
向量的构造函数是什么?我不确定你的意思@Revolver\u-Ocelot-
向量(size\u-type,T)
,作为一个构造函数,不能在静态定义中使用。另一方面,
array
,作为一种类型,可以在静态定义中使用。使用所述构造函数声明具有静态存储持续时间且没有问题的向量的示例:
exampleVector.resize(ROWS, std::vector<int>(COLS, 10));
char exampleName[MAX_NAME_LENGTH]
int exampleConfig[MAX_LEVELS]
#include <array>

#define ROWS 10
#define COLS 20

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