c++ map 自定义排序
时间: 2023-09-29 12:04:15 浏览: 123
c++自带排序.cpp
您好!对于C++中的std::map容器,可以使用自定义函数对象进行排序。下面是一个示例代码,演示如何自定义排序:
```cpp
#include <iostream>
#include <map>
// 自定义比较函数对象
struct MyCompare {
bool operator()(const std::string& s1, const std::string& s2) const {
// 比较字符串的长度
return s1.length() < s2.length();
}
};
int main() {
// 使用自定义比较函数对象创建map
std::map<std::string, int, MyCompare> myMap;
// 向map中插入元素
myMap["apple"] = 10;
myMap["banana"] = 20;
myMap["orange"] = 30;
// 遍历map并输出元素
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
在上面的示例中,我们定义了一个名为`MyCompare`的自定义函数对象,它按照字符串的长度进行比较。然后,我们使用这个自定义比较函数对象作为`std::map`的第三个模板参数,以实现自定义排序。
希望这可以帮助到您!如果有任何其他问题,请随时提问。
阅读全文