我在OMNeT ++中没有找到有关地图的任何文档。
我正在尝试按值而不是按键对map<int,double>
进行排序,并擦除一些数据。
我这样声明地图和迭代器
std::map<int,double> Dlist;
std::map<int,double>::iterator it;
我尝试过
sort(Dlist.begin(), Dlist.end());
但是有一个错误。
而且迭代器不会返回值
iterator.first
iterator.second
答案 0 :(得分:1)
首先,这是一个纯粹的C ++相关问题,因为您正在使用def somefunc(x):
if condition is True:
func(x)
。
std::sort
对容器进行排序,因此没有可访问的迭代器。此外,在给定的代码中,甚至不使用声明的迭代器。
其次,我强烈怀疑您是否真的想对地图的值进行排序。尽管从技术上讲这是可行的,但这没有任何意义:Sorting std::map using value。
相反,您可以将映射中的所有值复制到std::map
中,然后对该向量进行排序。参见Copy map values to vector in STL。