📅  最后修改于: 2023-12-03 15:10:08.342000             🧑  作者: Mango
在C ++中,STL(标准模板库)是一组用于处理数据的通用模板的集合。它提供了许多用于操作数据的函数和数据结构,包括排序函数。
在本文中,我们将介绍如何使用STL中的sort函数,按照地图中的值来排序。
下面是按照地图值排序的C ++ STL代码示例:
#include <iostream>
#include <map>
#include <algorithm>
int main()
{
std::map<int, int> mymap;
mymap[3] = 30;
mymap[2] = 20;
mymap[1] = 10;
// 使用值对map进行排序
std::map<int, int, std::less<int>> sorted_map;
std::copy(mymap.begin(), mymap.end(),
std::inserter(sorted_map, sorted_map.begin()));
// 输出已排序的地图
std::cout << "Sorted Map: \n";
for (auto const& pair : sorted_map) {
std::cout << "{" << pair.first << ": " << pair.second << "}\n";
}
return 0;
}
在上面的代码中,我们首先创建了一个名为mymap
的map。我们添加了一些键值对并没有按照任何特定的顺序排序。
然后,我们创建一个名为sorted_map
的新map,使用STL中的std::less<int>
排序函数将其初始化为ISO定义的默认排序函数之一。
使用std::copy()
函数将mymap
的内容复制到sorted_map
中,并指示将源map的所有元素插入到目标map的开头处。
最后,我们使用一个循环输出排序后的地图。您会看到,此次排序按照值的大小进行排序,而不是按照键。
使用C ++ STL,我们可以使用sort函数轻松对任何map进行排序。只需使用std::copy()
将map内容复制到新的已排序map中,然后使用循环输出新map即可。