c++ 映射和vector混合使用
时间: 2024-05-30 14:06:56 浏览: 165
C++ Lambda表达式详解
C++中,映射(Map)是一种关联式容器,它将一组键值对映射到唯一的值。而vector是一种顺序容器,它能够高效地存储和访问元素序列。
当我们将映射和vector混合使用时,通常是在需要按照某种顺序访问映射中的元素时使用。一种常见的做法是将映射中的元素按照某个属性排序后,将其存储在一个vector中,然后按照vector的顺序来访问映射中的元素。
例如,我们可以使用以下代码将一个映射按照值从小到大排序后存储在一个vector中:
```
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
map<string, int> myMap = {{"Alice", 23}, {"Bob", 34}, {"Charlie", 12}, {"David", 45}};
// 将map转化为vector并排序
vector<pair<string, int>> vec(myMap.begin(), myMap.end());
sort(vec.begin(), vec.end(), [](pair<string, int>& a, pair<string, int>& b) { return a.second < b.second; });
// 按照vector的顺序访问map中的元素
for (auto& p : vec) {
cout << p.first << " " << p.second << endl;
}
return 0;
}
```
这段代码将map转化为vector,并按照值从小到大排序后输出键值对。同时,你也可以根据自己的需求修改代码,实现其他不同的功能。
阅读全文