长安的花

当学问走过漫漫古道
凿刻入千窟,心也从愚昧中苏醒

0%

Hack cpp Map and pair

字典map与pair一对

字典map是键和键值一起出现的

使用字典 map 需要头文件定义#include <map>

map<数据类型1,数据类型2> mp

map<int,string> mp;

对模板进行类型定义后使用会很方便

1
2
typedef std::map<int , std::string> MAP_INI_STRING;
MAP_INI_STRING person;

map添加数据

  1. 数组方式插入
    mp[1] = “ketti”;

  2. insert 插入 pair数据

1
2
3
4
5
std::map < int , std::string > mpPerson;
mpPerson.insert(pair < int,string > (1,"ketti"));

mpPerson<int, string>::iterator it = mpPerson.begin();
mpPerson.insert(it, pair<int, string>{ 3, "隔壁老王" }); // 会自动排序
  1. insert 插入 value_type 数据
    mpPerson.insert(std::map < int, std::string > ::value_type (2, “Tom”));

pair

pair是一种模版类型。每个pair 可以存储两个值。这两种值的类型没有限制,也可以将自己写的类放进去

pair<int,int> p;

p->first = 1;p->second = 1;

1
2
3
pair<int ,int >p (5,6);

pair<int ,int > p1= make_pair(5,6);

map基本操作

map 的基本操作函数:

C++ Maps 是一种关联式容器,包含“关键字/值”对

begin()                  返回指向 map 头部的迭代器

clear()                 删除所有元素

count()                  返回指定元素出现的次数

empty()                 如果 map 为空则返回 true

end()                     返回指向 map 末尾的迭代器 `mp.find(key)!=mp.end()` 如果相等代表没找到

equal_range()        返回特殊条目的迭代器对

erase()                   删除一个元素

find()                     查找一个元素  

get_allocator()      返回map的配置器

insert()                  插入元素 mp.insert({ 1, "张三" });

key_comp()          返回比较元素key的函数

lower_bound()     返回键值>=给定元素的第一个位置

max_size()            返回可以容纳的最大元素个数

rbegin()                返回一个指向map尾部的逆向迭代器

rend()                   返回一个指向map头部的逆向迭代器

size()                    返回map中元素的个数

swap()                 交换两个map

upper_bound()    返回键值>给定元素的第一个位置

value_comp()       返回比较元素value的函数

map的遍历

可以用迭代器,或者数组样式

1
2
3
map<int, string>::iterator it = mp.begin();
for (it = mp.begin(); it != mp.end(); it++)
cout << it->first << " " << it->second << endl;

创建一个map 查找迭代器
map<string,int>::iterator itr=m.find(val);
//Gives the iterator to the element val if it is found otherwise returns m.end() .

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道