C++ 中的map

来源:互联网 发布:淘宝大韩泡泡糖是高仿 编辑:程序博客网 时间:2024/06/04 19:00

1. C++ 中的map想必大家都用过,我也是大一的时候就使用过,但是一直到最近的一个项目才发现对于C++中的map,自己认识的竟然是如此粗浅。

2. set和map一样都是有序的,用树作为存储结构。

主要的函数:

1> 构造函数: map<int,string> MAP;

2> 插入数据:

1. map.insert(pair<int,string>(1,"hello"));

2. map.insert(map<int,string>::value_type(1,"hello"));

3. map[2]="eaed";

第一种和第二种是一样的,但是第三种不太一样。

      第一种,会现在KEY中查找1,如果不存在插入。如果存在则不进行任何操作。这个函数返回一个pair类型,first为key,second 为bool,标志着插入数据的成功还是失败。      第三种,如果KEY存在了,它会覆盖。而且效率也存在问题,首先它会在KEY处插入一个空串,然后再赋值。

如果map 或者set中插入结构体是KEY的话,要重写比较函数。

bool  operator<(const A& a) const

{


}

3> 查找 find   map.find(KEY) 如果找到返回迭代器,找不到迭代器指向map.end()

4> set 和map 虽然提供了erase函数,但是这个函数不建议使用,因为如果在遍历的时候使用这个函数会破坏容器的有序性。

0 0
原创粉丝点击