Map
map的内部结构是红黑数,所以STL中map默认是按key排序的。
初始化
map<k, v> map; // 定义了一个名为map的空的map对象;
map<k, v> map(m2); // 创建了m2的副本map;
map<k, v> m(b, e); // 创建了map对象map,并且存储迭代器b和e范围内的所有元素的副本。
插入元素
- 使用下标
注: 在map中使用下标访问不存在的元素将导致在map容器中添加一个新的元素。
- 使用insert函数。
m.insert(e); // e一个value_type类型的值;只有在val不存在时插入val。否则插不进去。
m.insert(beg, end); // beg和end标记的是迭代器的开始和结束;
m.insert(iter, e); // 在指定位置插入e;
示例:
map<string, int> map;
string key = "hello";
string value = 1;
map.insert(make_pair(key, value));
删除元素
函数:
void erase( iterator pos ); // 删除指定位置;
void erase( iterator start, iterator end ); // 删除一定范围;
size_type erase( const KEY_TYPE &key ); // 删除指定key;
示例:
map.erase("hkl");
map判空
函数:
empty() // 如果map为空返回真,佛则返回假;
map.size() == 0; // map为空则表达式为真,否则为假;
map遍历
函数:
begin(); // 返回一个迭代器指向map的第一个元素;
end(); // 返回一个迭代器指向map的尾部;
示例:
// 正序遍历;
map<string, int>::iterator iter;
//std::map<string, int>::iterator iter;
for (iter = map.begin(); iter != map.end(); iter++) {
cout<<iter->first<<" "<