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的主要内容,如果未能解决你的问题,请参考以下文章

将多个输出中的hls属性设置为单独的片段代码

android google map supportmap片段无法在片段中初始化

比较有用的php代码片段

JavaScript 代码片段

代码片段 - Golang 实现集合操作

Android Studio Map setOnMarkerClickListener 不在片段上工作