vector <Mat> :: size()工作繁琐

Pra*_*uti -5 c++ opencv

我有一个Mat类型的矢量,大小为1 x 720 x 3,即一行,720列和3个通道.我检查了尺寸如下

vector<Mat> image_rows_avg;
cout<<image_rows_avg[0].size;
Run Code Online (Sandbox Code Playgroud)

它给出了一些像0x918840的值.可能这.size()是在给一些地址.所以我试着去做

cout<<image_rows_avg[0].size[0]; 这给了ans: 1

cout<<image_rows_avg[0].size[1];给出ans:720哪个是正确的,再次 cout<<image_rows_avg[0].size[2];给出了ans:159187328又一次垃圾.

我无法理解这是怎么回事.我认为.size()应该直接给出矢量的大小.

Die*_*ühl 5

访问其范围之外的元素会std::vector<T>导致未定义的行为.您的代码创建一个空std::vector<Mat>并访问一个不存在的元素.

  • +1,但我在等"哦,但这不是我真正的代码......" (3认同)