c++ Map使用

时间:2021-11-29 18:25:32

引入头文件:

#include <map>
1、初始化
map<int, int> a, b;
map<sting, int> a, b;
2、添加数据
map<int ,string> maplive;
法一:maplive.insert(pair<int,string>(102,"aclive"));
法二:maplive[112]="April";//map中最简单最常用的插入添加!
3、查找数据
find()函数返回一个迭代器指向键值key的元素,如果没找到返回尾部的迭代器。

map<int ,string> maplive;
map<int ,string >::iterator result;
result=maplive.find(112);
if(l_it==maplive.end())
cout<<"we do not find 112"<<endl;
else cout<<"wo find 112"<<endl;

对于迭代器 result
result->first //存储键值key
result->second //存储数据value
4、删除数据

map<int ,string> maplive;
map<int ,string >::iterator result;
result=maplive.find(112);
if(result==maplive.end())
cout<<"we do not find 112"<<endl;
else maplive.erase(result); //delete 112;map的erase()函数的形参是迭代器。

如果全部删除 maplive.clear()
5、遍历数据

map<int ,string> maplive;
map<int ,string >::iterator result;
for ( result = maplive.begin( ); result != maplive.end( ); result++ ){
cout << " " << result->second;
cout << "." << endl;
}

6、排序
Map中的元素是自动按key升序排序,所以不能对map用sort函数:

7、map的基本操作函数:
C++ Maps是一种关联式容器,包含“关键字/值”对
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数,其中形参是key值
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
erase() 删除一个元素
find() 查找一个元素
insert() 插入元素
key_comp() 返回比较元素key的函数
value_comp() 返回比较元素value的函数
lower_bound() 返回键值>=给定元素的第一个位置(返回结果为迭代器)(形参是key值)
upper_bound() 返回键值>给定元素的第一个位置(返回结果为迭代器)(形参是key值)
max_size() 返回可以容纳的最大元素个数
size() 返回map中元素的个数
swap() 交换两个map