c++中 map如何 按插入顺序输出
时间: 2024-05-03 13:21:24 浏览: 162
在 C++ 中,可以使用 std::map 来实现按插入顺序输出。在创建 map 对象时,需要使用 std::map 的一个变体,即 std::map<Key, Value, Compare, Allocator>,其中 Compare 参数用于指定排序函数,可以将其设置为 std::less<Key>(默认值),也可以将其设置为 std::function<bool(const Key&, const Key&)>,并指定比较函数。
为了按插入顺序输出,可以使用 std::map 和 std::list 或 std::vector 结合的方式。即在 std::map 中存储键值对的同时,将键值对的键(或者键值对)存储到 std::list 或 std::vector 中,然后按照 std::list 或 std::vector 中的顺序进行输出。
以下是一个示例代码:
```
#include <iostream>
#include <map>
#include <list>
int main() {
std::map<int, std::string, std::less<int>, std::allocator<std::pair<const int, std::string>>> myMap;
std::list<int> myKeys;
myMap[1] = "one";
myKeys.push_back(1);
myMap[2] = "two";
myKeys.push_back(2);
myMap[3] = "three";
myKeys.push_back(3);
for (auto it = myKeys.begin(); it != myKeys.end(); ++it) {
std::cout << "key: " << *it << ", value: " << myMap[*it] << std::endl;
}
return 0;
}
```
输出结果为:
```
key: 1, value: one
key: 2, value: two
key: 3, value: three
```
阅读全文