c++中map逆序遍历
时间: 2023-11-15 10:56:05 浏览: 82
可以使用反向迭代器实现map的逆序遍历,示例代码如下:
```c++
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};
// 逆序遍历
for (auto it = myMap.rbegin(); it != myMap.rend(); ++it) {
std::cout << it->first << ": " << it->second << std::endl;
}
return 0;
}
```
输出结果为:
```
3: three
2: two
1: one
```
相关问题
c++ map倒序遍历
你可以使用`std::map`的`rbegin()`和`rend()`迭代器来实现倒序遍历。以下是一个示例代码:
```cpp
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap;
myMap = "one";
myMap = "two";
myMap = "three";
for (auto it = myMap.rbegin(); it != myMap.rend(); ++it) {
std::cout << it->first << ": " << it->second << std::endl;
}
return 0;
}
```
这段代码创建了一个`std::map`对象`myMap`,并向其中插入了一些键值对。然后,使用反向迭代器`rbegin()`和`rend()`循环遍历`myMap`,输出每个键值对的内容。输出结果为:
```
3: three
2: two
1: one
```
请注意,使用`rbegin()`和`rend()`进行的遍历是从最后一个键值对开始,按照键的逆序进行的。
c++逆序递归遍历单链表
逆序递归遍历单链表的算法如下:
1. 如果单链表为空,直接返回。
2. 递归遍历单链表的下一个节点。
3. 输出当前节点的值。
具体实现代码如下:
```c
void reverse_print(Node* head) {
if (head == NULL) {
return;
}
reverse_print(head->next);
printf("%d ", head->data);
}
```
其中,Node表示单链表的节点类型,包含data和next两个成员变量。reverse_print函数为逆序递归遍历单链表的函数,其参数为单链表的头节点指针。函数首先判断单链表是否为空,如果为空直接返回;否则,递归遍历单链表的下一个节点,然后输出当前节点的值。递归调用结束后,整个单链表就被逆序遍历了一遍。