map
Posted mercury-city
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了map相关的知识,希望对你有一定的参考价值。
一.定义
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的主要内容,如果未能解决你的问题,请参考以下文章