1

所以我试着在这里搜索,但还没有找到同样的问题。我似乎无法弄清楚如何正确使用这个跟踪向量。最终,我想要一个向量数组(长度 == 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 的数组,从而不必检查索引越界异常。

感谢您的想法和建议。

4

1 回答 1

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;
于 2014-03-21T00:18:48.333 回答