【发布时间】:2021-12-31 08:53:33
【问题描述】:
我有 map
#include <iostream>
#include <map>
#include <vector>
using namespace std;
int main() {
map<int, vector <int>> someMap;
someMap[5] = {5, 2, 3, 7};
someMap[151] = {5, 9, 20};
return 0;
}
我需要找到每个地图值中的最后一个向量元素。输出必须是这样的:
7
20
谢谢:)
【问题讨论】:
-
像大多数容器一样,std::map 有一个 reverse_iterator。文档位于 cppreference dot com。 map::rbegin( ) 将是一个开始寻找的好地方。
-
for (auto& vector : someMap) { ... }。事实上,您甚至没有努力查找标准容器的基本功能,或者至少忽略了在您的问题中显示该尝试使您的问题有被关闭的危险。请阅读How to Ask 以及如何制作minimal reproducible example。展示您尝试过的内容以及您尝试的无效内容。 -
@super 应该是
for (auto& [integer, vector] : someMap) { ... }。如果你只做for (auto& vector : someMap),vector将不包含向量,而是一个std::pair<int, vector<int>>。
标签: c++ iterator stdvector stdmap