在C ++中使用向量数组的向量

时间:2014-03-20 23:53:11

标签: c++ arrays vector initializing

所以我尝试搜索here,但还没有找到同样的问题。我似乎无法弄清楚如何正确使用这个跟踪的矢量。最终,我想要一个向量的数组(长度== 2)的向量。这不是我得到索引超出限制的消息,而是当我尝试编译时,它说:

c:\program files (x86)\microsoft visual studio 10.0\vc\include\memory(631): error C2440:     '<function-style-cast>' : cannot convert from 'int' to 'std::vector<_Ty> '
1>          with
1>          [
1>              _Ty=int
1>          ]


//code

int main() {

    typedef vector<int> feature_points[2];
    vector< feature_points >tracked;

    tracked.resize(10);
}

我想我可以做vector<vector<vector<int>>>,但由于数组部分的长度总是2,所以我只想将它用作2的数组,从而不必检查索引是否为限制例外。

感谢您的意见和建议。

1 个答案:

答案 0 :(得分:2)

使用std::array代替数组例如

#include <array>
#include <vector>

//...
std::vector<std::array<std::vector<int>, 2>> tracked;

或者

#include <array>
#include <vector>

//...
typedef std::array<std::vector<int>, 2> feature_points;
std::vector< feature_points >tracked;