向量矢量C

Vector Vector C ++

本文关键字:向量      更新时间:2023-10-16

向量向量c 嗨,我不了解嵌套向量的语法以模拟数组,我有以下代码。

vector< vector< float> > myvector (n, vector < float> (2));

,但我不太了解它的工作原理,尤其是在指定向量的大小和其中的向量的地方,如果您想制作调整大小以使我的向量向量向量有指定的维度,我该如何调整内部向量大小?例如将vec [10] [2]更改为vec [10] [5](更改第二维)

除了如何使用多维矢量制作副本之外:

vector< int> myvector (myVectorToCopy, myVectorToCopy+myVectorToCopy.size()); 

但有几个维度。谢谢。

vector<vector<float>>表示您正在创建包含浮子向量的向量。构造函数参数意味着您正在创建一个大小 n的向量,其中每个元素的每个元素都是具有尺寸2的浮子的向量。

调整vector<vector<float>>

for (int i = 0; i < n; ++i)
    A[i].resize(newSize);

或者您可以使用:

A.assign(n,vector<float>(newSize));

制作多维矢量使用构造函数的副本:

vector<vector<float>> B(A);

C 中的向量将自动调整大小,如果您填充它们并尝试为它们添加更多内容。如果您知道矢量的确切大小,我建议您切换到std::array,但是您将失去调整它们大小的能力。

std::vector::operator[]具有一个过载,可以返回用于创建模板的T的引用(在您的情况下,Tstd::vector,嵌套了)。如果您知道外部向量中的索引,则可以做类似的事情:

myVec[0].resize(5);

这将调整您的嵌套向量在位置0到5个元素。

复制与访问:

大致相同
std::copy(std::begin(VecToCopy), std::end(VecToCopy), std::begin(VecToFill));

使用std::begin最后可能不是您想要的,而只是一个例子。

http://en.cppreference.com/w/cpp/algorithm/copy
http://en.cppreference.com/w/cpp/container/array