码迷,mamicode.com
首页 > 其他好文 > 详细

map

时间:2020-05-30 12:42:37      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:迭代器   str   nbsp   cout   int   make   数据   一个   没有   

一.定义

map<Type1,Type2>a;

二.使用

其实map是红黑树(平衡二叉查找数)

可以很快查找记录、插入、删除、修改、遍历。

map[A]=B;

A就是索引

B即为所指向的值

1.插入

首先map的两组数据是当做pair使用的。

(1)insert插入pair

注意,如果已经有索引已经存在了,那么就插不进去

map<int,string>m;
m.insert(pair<int,string>(1,"a"));
m.insert(make_pair(1,"b"));
cout<<m[1]<<endl;

输出a

(2)insert插入value_type
注意,如果已经有索引已经存在了,那么就插不进去

(3)用数组插入

map<int,sring>m;
m[1]="a";
m[1]="b";
cout<<m[1]<<endl;

输出b

2.迭代器

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

end()指向结尾的迭代器

迭代器的定义map<Type1,Type2>::iterator it;

it->first  为索引    it->second  为数据

3.遍历

map<int,string> m;
m[2]="b";
m[1]="a";
m[3]="c";
map<int,string>::iterator it;
for(it=m.begin();it!=m.end();++i)
    cout<<it->first<< <<it->second<<endl;

输出

1 a

2 b

3 c

注意map自对索引排序

4.一些特殊使用

count(x)返回x出现没有 0/1

find(x) 返回x所在位置的迭代器

lower_bound()返回关键字>=给定的第一个位置的迭代器

upper_bound()返回关键字>给定的第一个位置的迭代器

复杂度均为O(log n)

map

标签:迭代器   str   nbsp   cout   int   make   数据   一个   没有   

原文地址:https://www.cnblogs.com/Mercury-City/p/12991754.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!