尝试将数据从多地图传递到地图未按建议工作
Trying to pass data from a multimap to a map is not working as suggested
在此postConvert a multi_key map into a "normal" map joining the multiple keys
他们建议如何通过将第一个值传递给第二个值来将多图转换为地图。我在我的代码中尝试过,但它不起作用:
multimap<double, Point>::iterator it;
for(it = _mapIntersectionVertices.begin(); it != _mapIntersectionVertices.end(); ++it)
{
_mapNewPoints[it->first].insert(it->second);
}
我收到错误
"no member named 'insert' in 'Point'"我不知道为什么,我不是要调用方法,只是按照[=中的示例37=]。作为附带的事情,我对他们对地图使用相同的迭代器和 for 内的多重地图的事实不太满意,但是当使用地图迭代器 it2 来代替时:
_mapNewPoints[it2->first].insert(it->second)
没有变化
我在某些 class 中有以下属性,我正在尝试填写。
multimap<double, Point> _mapIntersectionVertices;
map<double, Point> _mapNewPoints;
点 class 是:
class Point
{
private:
Vector2d _coordinates; //using Eigen library
public:
int _label;
Point(const double x = 0.0, const double y = 0.0);
Point(Vector2d coordinates);
void setCoordinates(const double x, const double y) {_coordinates(x, y);}
const Vector2d& getCoordinates() const {return _coordinates;}
};
我想将多图的内容复制到地图中,这样我就可以在后面添加更多数据而不会弄乱第一个,而且比将 _mapNewPoints 声明为多图(使用[] 可用于地图但不适用于多地图的运算符。
我该如何解决这个问题?
_mapNewPoints[it->first].insert
意味着 Point
有一个 insert
方法,但事实并非如此。我相信你可能想要这样的东西:
for (it = _mapIntersectionVertices.begin(); it != _mapIntersectionVertices.end(); ++it)
{
_mapNewPoints.insert(*it);
}
在此postConvert a multi_key map into a "normal" map joining the multiple keys
他们建议如何通过将第一个值传递给第二个值来将多图转换为地图。我在我的代码中尝试过,但它不起作用:
multimap<double, Point>::iterator it;
for(it = _mapIntersectionVertices.begin(); it != _mapIntersectionVertices.end(); ++it)
{
_mapNewPoints[it->first].insert(it->second);
}
我收到错误 "no member named 'insert' in 'Point'"我不知道为什么,我不是要调用方法,只是按照[=中的示例37=]。作为附带的事情,我对他们对地图使用相同的迭代器和 for 内的多重地图的事实不太满意,但是当使用地图迭代器 it2 来代替时:
_mapNewPoints[it2->first].insert(it->second)
没有变化
我在某些 class 中有以下属性,我正在尝试填写。
multimap<double, Point> _mapIntersectionVertices;
map<double, Point> _mapNewPoints;
点 class 是:
class Point
{
private:
Vector2d _coordinates; //using Eigen library
public:
int _label;
Point(const double x = 0.0, const double y = 0.0);
Point(Vector2d coordinates);
void setCoordinates(const double x, const double y) {_coordinates(x, y);}
const Vector2d& getCoordinates() const {return _coordinates;}
};
我想将多图的内容复制到地图中,这样我就可以在后面添加更多数据而不会弄乱第一个,而且比将 _mapNewPoints 声明为多图(使用[] 可用于地图但不适用于多地图的运算符。
我该如何解决这个问题?
_mapNewPoints[it->first].insert
意味着 Point
有一个 insert
方法,但事实并非如此。我相信你可能想要这样的东西:
for (it = _mapIntersectionVertices.begin(); it != _mapIntersectionVertices.end(); ++it)
{
_mapNewPoints.insert(*it);
}