所以我尝试搜索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的数组,从而不必检查索引是否为限制例外。
感谢您的意见和建议。
答案 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;