map


一.定义

mapa;

二.使用

其实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<1]<

输出a

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

(3)用数组插入

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

输出b

2.迭代器

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

end()指向结尾的迭代器

迭代器的定义map::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<first<<' '<second<

输出

1 a

2 b

3 c

注意map自对索引排序

4.一些特殊使用

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

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

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

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

复杂度均为O(log n)

相关