C++标准库中map的简单使用示例

1、在STL中,map是一种关联式容器,包含键值对即元素为pair
2、除此之后,map还是一种有序容器,这和Obj-C不一样,Obj-C中相对应的数据类型为Dictionay,这是一个无序容器;
3、与list、vector不一样的地方在于,map指定了键值对类型后,容器中元素是接收了键值对类型后的pair;
4、看下代码示例或许更直观一点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <map>
 
using namespace std;
 
int main(){
    map<int, int> map1;
    // 插入一个键值对,直接使用{}的方式
    map1.insert({1, 1});
    // 插入一个键值对,指定{}类型为pair<int,int>
    map1.insert((pair<int, int>){2, 2});
    // 插入一个键值对,使用pair<int,int>的构造函数
    map1.insert(pair<int, int>(3, 3));
    // 插入一个键值对时会返回一个pair,pair的一个元素为map迭代器,第二个元素为bool值
    // 意思是插入后会返回插入的结果,成功或失败并返回结果所在位置,即迭代器指向当前位置
    pair<map<int, int>::iterator, bool> result;
    result = map1.insert(pair<int, int>(4, 4));
    // 输出结果
    cout << result.second << endl;
    // 遍历map中所有元素,元素为pair类型
    for_each(map1.begin(), map1.end(), [](pair<int, int> p)->void{
        cout << p.first << ":" << p.second << endl;
    });
    return 0;
}

运行结果:
1
1:1
2:2
3:3
4:4
Program ended with exit code: 0

Leave a Reply