把矢量放在数组元素中

时间:2012-10-28 22:28:36

标签: c++ arrays vector

可以将一个向量放在数组元素a [0],[1] ......(每个a [x]中的不同向量)? 如果可能的话,如何在给定的a [n]中访问向量的一个元素?

3 个答案:

答案 0 :(得分:2)

您拥有的一些可能性:

// Static array of vectors (not a good practice though) 
std::vector<int> vec_array1[size];

// Or dynamic array of vectors (still not very c++ish and error prone)
std::vector<int> *vec_array2;
vec_array = new std::vector<int>[size];

// Or vector of vectors
std::vector<std::vector<int> > vec_array3(size);

// Or std::array of vectors (in c++11)
std::array<std::vector<int>, size> *vec_array4;

在任何情况下,您都可以使用[]运算符访问向量:

vec_array[0].push_back(5);

使用两个[]运算符的元素如:

vec_array[0][2] = 4;

答案 1 :(得分:1)

是的,你可以。这是一个如何做的例子。

std::array<std::vector<int>, n> array_of_vector;
//add to vector in array
array_of_vector[0].push_back(4);
//access element in vector in array
array_of_vector[0][0]=5;

答案 2 :(得分:1)

你可以做点什么

 std::vector< std::vector < type > > a;

所以,a[i]是您需要的std::vector