将新矢量附加到矢量

时间:2016-01-20 01:17:04

标签: c++ vector

我使用以下代码创建一个本身将包含向量的向量:

vector<vector<short>> pixelData;

然而,我从一个空向量开始,我想添加一个新的向量作为第一个元素,但我不知道如何构造一个向量而不将其赋值给变量。现在,我正在做:

pixelData.push_back(vector<short> (x, y));

其中pixelData是我的包含向量,我用两个短值构建一个新的向量。

2 个答案:

答案 0 :(得分:3)

如果您想要添加一个新的vector,其中包含两个值为xy的元素,则应使用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)以避免内部重新分配。