如何在OMNeT ++中对地图排序?

时间:2018-06-19 16:52:22

标签: c++ omnet++

我在OMNeT ++中没有找到有关地图的任何文档。 我正在尝试按值而不是按键对map<int,double>进行排序,并擦除一些数据。

我这样声明地图和迭代器

std::map<int,double> Dlist;
std::map<int,double>::iterator it;

我尝试过

sort(Dlist.begin(), Dlist.end());

但是有一个错误。

而且迭代器不会返回值

iterator.first
iterator.second

1 个答案:

答案 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