概述
map函数使用
#include<cstdio>
#include<map>
#include<iostream>
#include<string>
#include<utility>
using namespace std;
map<int,string> asd;//建立映射关系
// int ->key
string ->value
//map是基于key为关键字排序的
/*
map的基本操作函数:
C++ maps是一种关联式容器,包含“关键字/值”对
begin()
返回指向map头部的迭代器
clear()
删除所有元素
count()
返回指定元素出现的次数
empty()
如果map为空则返回true
end()
返回指向map末尾的迭代器
equal_range()
返回特殊条目的迭代器对
erase()
删除一个元素
find()
查找一个元素
get_allocator() 返回map的配置器
insert()
插入元素
key_comp()
返回比较元素key的函数
lower_bound()
返回键值>=给定元素的第一个位置
max_size()
返回可以容纳的最大元素个数
rbegin()
返回一个指向map尾部的逆向迭代器
rend()
返回一个指向map头部的逆向迭代器
size()
返回map中元素的个数
swap()
交换两个map
// map中的swap不是一个容器中的元素交换,而是两个容器所有元素的交换。
upper_bound()
返回键值>给定元素的第一个位置
value_comp()
返回比较元素value的函数
*/
int main()
{
int n;
scanf("%d",&n);
string name;
int mark;
while(n--)
{
cin>>mark>>name;
asd.insert(pair<int,string>(mark,name));
//利用 pair 输入
// asd.insert(map<string,int>::value_type(name,mark));
//利用 value_type 输入
}
int nSize=asd.size();
cout<<nSize<<endl;//输出这个 map 的大小
// map 的两种遍历方式
for(map<int,string>::iterator it=asd.begin();it!=asd.end();it++)
cout<<it->first<<" "<<it->second<<endl;//使用迭代器进行遍历
// for(map<int,string>::reverse_iterator it=asd.rbegin();it!=asd.rend();it++)
//
cout<<it->first<<" "<<it->second<<endl;//利用反向迭代器进行遍历
//利用 map 自带的成员函数 find() 进行查找
时间复杂度:log n
map<int,string>::iterator iter;
iter=asd.find(3);//查找 key 值为3的数
if(iter!=asd.end())
cout<<"Find, the value is "<<iter->second<<endl<<endl;
else cout<<"Do not Find"<<endl<<endl;
//利用 map 自带成员函数 erase 来移除项目
// iterator erase(iterator it);//通过一个条目对象删除
// map<int,string>::iterator it=asd.find(1);
// asd.erase(it);
//如果删除了会返回1,否则返回0
// iterator erase(iterator first,iterator last)//删除一个范围
// 目前就会这一种方法,希望以后还能找到一个更简单的
/* int space=0;
for(map<int,string>::iterator it=asd.begin();it!=asd.end();)
{
++space;
if(it->first==space) asd.erase(it++);
else ++it;
// if(space==3) break;
}
*/
// size_type erase(const Key&key);//通过关键字删除
// asd.erase(1);
// clear()就相当于enumMap.erase(enumMap.begin(),enumMap.end());
// asd.erase(asd.begin(),asd.end());
// 或者
// asd.clear();
// for(map<int,string>::iterator it=asd.begin();it!=asd.end();it++)
//
cout<<it->first<<" "<<it->second<<endl;//使用迭代器进行遍历
// map中lower_bound()和upper_bound()的使用
// map<int,string>::iterator lower,upper;
// lower=asd.lower_bound(val);
// upper=asd.upper_bound(val);
// printf("%d %d",lower->second,upper->second);
return 0;
}
先更新到这里,以后有什么新的算法再做补充
最后
以上就是柔弱大叔为你收集整理的map函数操作规范map函数使用的全部内容,希望文章能够帮你解决map函数操作规范map函数使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复