error: no match for 'operator[]' (operand types are 'const std::__cxx11::list<cv::Mat>' and 'int') cv::Mat feat = classify_fluorescent_clothes.mat_list[0];
时间: 2024-03-13 14:44:01 浏览: 326
json error: Use of overloaded operator [] is ambiguous错误的解决方法
错误提示显示,您正在尝试从一个const std::list<cv::Mat>对象中使用[]运算符来访问元素。然而,std::list没有[]运算符重载,因此编译器无法识别您的代码。
如果您想要访问std::list中的元素,可以使用std::list::front()或std::list::back()方法来访问第一个或最后一个元素,或者使用std::advance()和std::next()等方法来访问中间的元素。
例如,以下代码演示了如何使用std::list::front()方法来访问第一个元素:
```
const std::list<cv::Mat> mat_list = get_mat_list();
cv::Mat feat = mat_list.front();
```
请注意,由于mat_list是一个const对象,因此我们只能使用const方法来访问其元素。如果您需要修改list中的元素,则需要使用非const对象。
阅读全文