文章目录
C++ map就是Python里的字典,键值对构成,键唯一,值可以重复
1、建立map
使用前加头文件 #include <map>
声明
map<key_size, value_size> map_name;
键值对类型可以是基础数据类型,也可以是结构体或类;
二、添加数据
2.1 直接赋值 使用 { } 类似于数组赋值
map <int ,string > ID_name ={
{2015,'Jim'},
{2016,"Tom"}
};
注意:直接赋值的方式 无需在赋值前再定义 ,即 (以下重复定义)
map <int ,string > ID_name; (要去掉)
map <int ,string > ID_name ={
{2015,'Jim'},
{2016,"Tom"}
};
2.2 [ ] 插入:给对应的键赋某个值
map_name[ key ] = value;
如 ID_Name[2015] = “Tom”;
2.3 insert 插入
- pair 怎么使用
3、map 迭代器
语法:map_name<key_type,value_type>::iterator 迭代器名字;
map 遍历 (打印出map)
首先定义迭代器;再从头到尾遍历注意区间是 [ begin, end)
map <key_type,value_type>::iteratror iterator_name;
**注意这里是map,不是声明中map 的名字,即这里的 map 是固定的**
for( iterator_name = map.begin(); iterator_name != map.end(); iterator_name++ )
cout << iteror_name ->first << "->" << iterator_name->second << endl;
实例:
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, string>t = {
{0,"tom"},
{1,"app"}
};
map<int, string>::iterator iter;
for (iter = t.begin(); iter != t.end(); iter++)
cout << iter->first << "->" << iter->second << endl;
return 0;
}
结果
0->tom
1->app
这里的 iter->first 是输出map的键,iter->second 输出前面 map的键对应的值
这里的 iter->fist 也可以写成 (*iter).first
4、查找
map_name.find(key); 或 map_name.count(key);
区别;
map_name.find(key); 返回是一个迭代器
因此,
int n;
n = map_name.find(key); 错误
map.count(key) 查找 map 中是否存在键值,若存在返回1,否则0;缺点:无法定位数据出现的位置。
map.find(key); 返回一个迭代器;若存在返回 key 所在位置的迭代器,否则等于 end 返回的迭代器
对值的使用:
map.at(key); 输出 key 所对应的值
比如 cout << map.at(0); 输出key为0的值;
4、删除
5、交换
6、排序
8、取值
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
//声明map
map<int, string> t;
//插入
t[0] = "apple";
t[1] = "pear";
//迭代器
map<int, string>::iterator iter;
iter = t.find(2);
if (iter != t.end())
cout << "字典中有这个值" << endl;
else
cout << "字典中没有这个值" << endl;
return 0;
}
添加要改颜色的字体
添加要改颜色的字体
添加要改颜色的字体
添加要改颜色的字体
本文总结了C++中的map容器,包括如何建立、添加数据、使用迭代器遍历、查找、删除、交换和排序等操作。通过实例演示了map的常见用法,如直接赋值、insert插入、通过迭代器遍历以及使用find和count查找键值对。

2万+

被折叠的 条评论
为什么被折叠?



