矢量 :<Mat>:size() 工作不畅

vector<Mat> ::size() working misteriously

本文关键字:工作 gt lt Mat 矢量 size      更新时间:2023-10-16

我有一个垫子类型的向量,大小为 1 x 720 x 3 ,即一行、720 列和 3 个通道。我检查了以下尺寸

vector<Mat> image_rows_avg;
cout<<image_rows_avg[0].size;

它给出了一些值,例如0x918840,可能这个.size()给出了一些地址。所以我试着做

cout<<image_rows_avg[0].size[0];给出一个:1

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

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

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