【发布时间】:2017-12-23 00:21:21
【问题描述】:
我正在尝试在向量中查找和计算重复的 cv::Points2f。为此,我尝试使用以下功能。但是当我尝试使用取消引用的值rv[*val]++ 时出现错误。
std::map<cv::Point2f, unsigned int> counter(const std::vector<Point2f>& vals)
{
std::map<Point2f, unsigned int> rv;
for (auto val = vals.begin(); val != vals.end(); ++val) {
rv[*val]++;
}
return rv;
}
最后,我想创建一个容器,其中包含键列表(没有重复的键)以及在原始向量中找到每个键的次数。
例如对于以下向量
vector<Point2f> v{Point2f(2,2),Point2f(3,3),Point2f(1,2),Point2f(2,2),Point2f(3,3)};
我想获取一个包含以下信息的容器: (1,2) 1; (2,2) 2; (3,3) 2
编辑:
只是为了澄清我得到了各种各样的注释和错误:
/usr/include/c++/5/bits/stl_function.h:387:20: error: no match for ‘operator<’ (operand types are ‘const cv::Point_<float>’ and ‘const cv::Point_<float>’)
{ return __x < __y; }
/usr/local/include/opencv2/core/cvstd.hpp:1031:20: note: no known conversion for argument 1 from ‘const cv::Point_<float>’ to ‘const cv::String&’
非常感谢您!
【问题讨论】:
-
什么是“错误”?