如何创建NxM 2D int矢量并为其创建默认值?
这里我尝试使用一些值创建一个3x3 int向量:
getEToken: function() {
return this._omexEntitlement ? this._omexEntitlement.etoken : this._etoken
},
但这个错误与
有关vector< vector<int> > m(3, vector<int> (3)) = {
{1,2,9},
{8,4,7},
{5,6,0}
};
我也在使用c ++ 11,所以上述语法不应该正确吗?根据{{3}},它应该没问题?
答案 0 :(得分:1)
如果删除括号中的内容,它可以正常工作。尺寸由初始化列表的大小决定。如果您想自己指定尺寸,可以使用std::array
。
std::vector< std::vector<int> > m= {
{1,2,9},
{8,4,7},
{5,6,0}
};
初始化数组有点不同。见this question。你需要双括号。
#include <array>
std::array< std::array<int, 3>, 3 > m= {{
{1,2,9},
{8,4,7},
{5,6,0}
}};
答案 1 :(得分:0)
括号中的代码为vector
的构造函数提供参数:
vector<vector<int>>(3, vector<int>(3));
这将创建一个包含三个vector
类型元素的新向量,每个元素内部都有三个整数。因此,在这种情况下,中的没有null
s 。
此代码:
vector<vector<int>> test =
{ {3,4,5},
{4,5,6} };
使用另一个构造函数,它接受初始化列表并自行推导出结果向量的大小。
这些是不同的构造函数!当您使用Type object(arg1, arg2);
表示法构造对象时,您基本上调用了Type
的构造函数。您正在调用函数,当然您无法添加函数调用。