STL - map
Posted rax-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL - map相关的知识,希望对你有一定的参考价值。
Map
/*pair
- pair类型的定义和初始化
- pair <T1,T2>p; // 定义了一个空的pair对象p
- pair<T1,T2>p(v1,v2); //定义了包含初始值为v1和v2的pair对象p
- make_pair(v1,v2);//以v1和v2值创建一个新的pair对象
- pair对象的一些操作
- p.first
- p.second
pair<int,string> p(0, “Hello”);
printf(“%d %s ”,p.first,p.second.c_str());
*/
1.map最基本的构造函数:
map<string , int > mapstring; map<int ,string > mapint;
map<string,char>mapstring; map<char, string>mapchar;
map<char,int>mapchar; map<int,char>mapint;
2.map添加数据
map<int ,string>maplive;
(1) maplive.insert(pair<int string>(102, “active”));
(2) maplive.insert(map<int,string> : :value_type(321, “hai”);
(3) maplive[112] = “April”; //map中最简单最常用的插添加;
3.map中元素的查找:
find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。
map<int,string> : : iterator l_it;;
l_it = maplive.find(112);
if(l_it == maplive.end())
printf(“we do not find 112”);
else
printf(“we find 112”);
4.map中元素的删除
如果删除112;
map<int,string> :: iterator 1_it;;
l_it = maplive.find(112);
if(l_it == maplive.end())
printf(“we do not find 112”);
else
maplive.erase(l_it); //删除112
5.容量查询
// 查询map是否为空
bool empty();
// 查询map中键值对的数量
size_t size();
// 查询map所能包含的最大键值对数量,和系统和应用库有关。
// 此外,这并不意味着用户一定可以存这么多,很可能还没达到就已经开辟内存失败了
size_t max_size();
// 查询关键字为key的元素的个数,在map里结果非0即1
size_t count( const Key& key ) const;
6.删除
// 删除迭代器指向位置的键值对,并返回一个指向下一元素的迭代器
iterator erase( iterator pos )
// 删除一定范围内的元素,并返回一个指向下一元素的迭代器
iterator erase( const_iterator first, const_iterator last );
// 根据Key来进行删除, 返回删除的元素数量,在map里结果非0即1
size_t erase( const key_type& key );
// 清空map,清空后的size为0
void clear();
7.交换
//就是两个map的内容交换
void swap( map & other);
8.的基本操作函数
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
erase()
删除一个元素
find() 查找一个元素
insert() 插入元素
key_comp() 返回比较元素key的函数
size() 返回map中元素的个数
swap() 交换两个map
9.功能
(1).自动建立Key – value的对应
(2).快速插入Key – Value 记录
(3).快速删除记录
(4).根据Key修改value记录
(5).遍历所有记录
10.应用
代替Hash
以上是关于STL - map的主要内容,如果未能解决你的问题,请参考以下文章