我阅读了使用 boost assign 初始化具有固定大小的向量的向量的文章,这应该完全满足我的要求:初始化一个可以在两个方向上任意扩展的向量的类矩阵向量(我想用它来提取和分组从更大的列表中选择的值)。
但是,前2个答案中给出的解决方案
vector<vector<int>> v(10, vector<int>(10,1));
在我的 CDT_eclipse 中提示语法错误,并在我的编译器中提示以下错误:
error: expected identifier before numeric constant
vector <vector <int> > v(10, vector <int>(10,1));
--
在向量的向量中找到的版本- 特定语法 适用于我的 eclipse:
vector<vector<int>> v = vector<vector<int>>(n, vector<int>(n, 0));
但是,它会提示我的编译器发出警告:
vector warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [...]
在应该使用我的代码的宏大方案中,无法更改编译器版本(Ubuntu 5.4.0-6ubuntu1~16.04.10 的 gcc 5.4.0 20160609)。所以我需要上面提到的命令的兼容公式。非常感谢!
编辑:我的两个主要尝试如下所示:
vector <vector <int> > v(10, vector <int>(10,1)); --> syntax error
vector <vector<int> > v = vector <vector<int> >(1, vector<int>(1, 0)); --> compiler error