map是一种关联式容器,包含“关键字/值”对
#include <map>
#include <string>
#include <iostream>
using namespace std;
int main()
{
map<int, string> mapStudent;
//map插入数据
mapStudent.insert(pair<int, string>(1, "student_one"));
mapStudent.insert(pair<int, string>(2, "student_two"));
mapStudent.insert(pair<int, string>(3, "student_three"));
mapStudent.insert(map<int, string>::value_type(4, "student_four"));
mapStudent[5] = "student_five";
//用前向迭代器遍历map
map<int, string>::iterator iter;
for (iter=mapStudent.begin();iter!=mapStudent.end();iter++)
{
cout << iter->first << ' ' << iter->second << endl;
}
//用反向迭代器遍历map
map<int, string>::reverse_iterator iter1;
for (iter1=mapStudent.rbegin();iter1 != mapStudent.rend();iter1++)
{
cout << iter1->first << " " << iter1->second << endl;
}
//用数组遍历map
int size = mapStudent.size();//mao的大小
for (int index=0;index<=size;index++)
{
cout << mapStudent[index] << endl;
}
//查找map中的元素
//begin()和end()都是iterator型,分别代表map对象中第一个条目和最后一个条目
map<int, string>::iterator iter2;
iter2 = mapStudent.find(1);
if (iter2!=mapStudent.end())
{
cout << "find,the value is" << iter2->second << endl;
}
else
{
cout << "Do not Find" << endl;
}
//从map中删除元素
map<int, string>::iterator iter3;
iter3 = mapStudent.find(2);//删除2,用关键字删除
mapStudent.erase(iter3);
int n = mapStudent.erase(2);//如果删除了会返回1,否则会返回0
mapStudent.erase(mapStudent.begin(), mapStudent.end());//清空map
return 0;
}
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
upper_bound() 返回键值>给定元素的第一个位置
value_comp() 返回比较元素value的函数