map排序
时间: 2023-07-25 07:04:51 浏览: 84
在C++中,可以使用STL中的map来实现排序。map本身是一个关联式容器,它按照键值对的方式进行存储,且按照键值进行自动排序。以下是一个使用STL中的map进行排序的示例代码:
```c++
#include <iostream>
#include <map>
int main()
{
std::map<int, std::string> m{
{ 1, "one" },
{ 3, "three" },
{ 2, "two" }
};
std::cout << "Before sorting:\n";
for (const auto& p : m) {
std::cout << p.first << ": " << p.second << '\n';
}
std::cout << "\nAfter sorting:\n";
std::map<int, std::string> sorted(m.begin(), m.end());
for (const auto& p : sorted) {
std::cout << p.first << ": " << p.second << '\n';
}
return 0;
}
```
在上述示例中,我们首先创建了一个map对象,并向其中插入了三个键值对。然后,我们打印出了原始的map的内容,接着使用map的迭代器构造了一个新的map对象,该对象按照键值自动排序。最后,我们打印出了排序后的map对象的内容。
需要注意的是,我们使用了map的迭代器范围构造函数来创建新的map对象。这种方法会将原始map中的所有键值对复制到新的map对象中,因此需要注意时间和空间的开销。