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

How to sort a map in OMNeT++?

本文关键字:排序 地图 OMNeT++      更新时间:2023-10-16

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

我像这样声明地图和迭代器

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

我试过了

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

但是有一个错误。

迭代器也不返回值

iterator.first
iterator.second

首先,这是一个纯粹与C++相关的问题,因为您正在使用std::map.

std::sort就地对容器进行排序,因此没有可以访问的迭代器。此外,在给定的代码中,甚至不使用声明的迭代器。

其次,我强烈怀疑你是否真的想对地图的值进行排序。虽然这在技术上是可行的,但它没有意义:使用值对 std::map 进行排序。

相反,您可以将映射中的所有值复制到一个std::vector中,然后对该向量进行排序。请参阅在 STL 中将映射值复制到矢量。