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函数,但是这个函数不建议使用,因为如果在遍历的时候使用这个函数会破坏容器的有序性。