Итак, я попытался поиск Вот, но не совсем нашел ту же проблему. Я не могу понять, как правильно использовать этот отслеживаемый вектор. В конечном счете, я хочу вектор массива (длина == 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, таким образом, не нужно проверять индекс за пределами исключений.
Спасибо за ваши мысли и предложения.
использование 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;
Других решений пока нет …