#include <iostream>
#include <fstream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/stitching/stitcher.hpp"
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
struct Keypoint
{
int a;
int b;
double c;
double descriptor[3];
};
int main()
{
vector<Keypoint> extrema;
vector<Keypoint> features;
extrema.resize(2);
//features.resize(2); //当事先知道要resize多大时
extrema[0].a = 1;
extrema[0].b = 2;
extrema[0].c = 3;
extrema[0].descriptor[0] =5;
extrema[0].descriptor[1] = 6;
extrema[0].descriptor[2] = 7;
extrema[1].a = 11;
extrema[1].b = 22;
extrema[1].c = 32;
extrema[1].descriptor[0] = 55;
extrema[1].descriptor[1] = 66;
extrema[1].descriptor[2] = 77;
for (size_t i = 0; i < 2; i++)
{
//features[i] = extrema[i]; //当事先知道要resize多大时
features.push_back(extrema[i]); //当事先不知道要resize多大时
}
cout << extrema[0].a << endl;
cout << extrema[1].b << endl;
cout << extrema[1].descriptor[2] << endl;
cout << features[0].a << endl;
cout << features[1].b << endl;
cout << features[1].descriptor[2] << endl;
vector<Keypoint>(extrema).swap(extrema); //释放vector内存
vector<Keypoint>(features).swap(features);
system("pause");
return 0;
}
使用vector出现的错误 subscript out of range(给vector<struct>赋值)
最新推荐文章于 2021-11-27 16:30:25 发布