我使用以下代码创建一个本身将包含向量的向量:
vector<vector<short>> pixelData;
然而,我从一个空向量开始,我想添加一个新的向量作为第一个元素,但我不知道如何构造一个向量而不将其赋值给变量。现在,我正在做:
pixelData.push_back(vector<short> (x, y));
其中pixelData是我的包含向量,我用两个短值构建一个新的向量。
答案 0 :(得分:3)
如果您想要添加一个新的vector
,其中包含两个值为x
和y
的元素,则应使用initialization list(自C ++ 11起),
pixelData.push_back(vector<short> {x, y});
或只是
pixelData.push_back({x, y});
检查std::vector
here的构造函数。
答案 1 :(得分:1)
实际上你没有构造一个带有2个短值的向量,你正在调用这个构造函数:
explicit vector::vector(size_type count, const T& value = T())
通过将count
复制到每个单元格来初始化容量为value
的向量。
要创建一个空向量,只需调用空构造函数,例如vector<short>()
,但如果您知道容量只是使用它,例如vector<short>(size)
以避免内部重新分配。