C++STL——Map


#include 
#include 
using namespace std;
int main()
{
	//使用map或者unordered_map时,应该include对应的库文件,注意它没有.h扩展。如#include .
	//当然也可以直接写#include  这个万能头文件 
	 
//	unordered_map map;//map和unordered_map使用的方式完全相同
	//map 有序,键值对。存入的按照键的顺序排序 
	//查找时用unordered_map更加高效 
	
	map map1;//给map类型命名时最好不要和类型名相同 
	
	//插入方法1 使用pair<> 
//	map1.insert(pair(1,'a'));
//	map1.insert(pair(2,'b'));
//	map1.insert(pair(3,'c'));
	
	//插入方法2 使用value_type 
//	map1.insert(unordered_map::value_type(1,'a')); 
//	map1.insert(unordered_map::value_type(2,'b'));
//	map1.insert(unordered_map::value_type(3,'c'));
	
	//插入方式3 使用数组的方式

	map1[2] = 'b';
	map1[3] = 'c';
	map1[1] = 'a';
	
	//使用insert时,当键已经存在时就插入不了数据了。而使用数组的方式时,它可以覆盖之前的数据
	
	//使用迭代器进行遍历。迭代器的第一个参数为键,第二个为值。并且使用 -> 的方式选择
	
	//顺序迭代器的输出顺序和栈类似,后进先出 
	map::iterator iter;
	for(iter = map1.begin();iter!=map1.end();iter++)//begin()为第一个成员,end()为最后一个 
	{
		cout<first<<" : "<second<::reverse_iterator riter;  
	for(riter = map1.rbegin(); riter != map1.rend(); riter++)  
        cout<first<<" :  "<second<::iterator iter1;
//	iter1 = map1.find(3);//注意find的使用方式 
//	if(iter1 != map1.end()) //注意该判断条件  
//       cout<<"Find, the value is "<second<::iterator iter1;
//	iter1 = map1.find(1);
//	map1.erase(iter1);

	int a = map1.erase(1);	//直接关键字删除,成功返回1,失败返回0

	//map全部清空 
//	map1.erase( map1.begin(), map1.end() ); 
	
	map::iterator iter2;
	for(iter2 = map1.begin();iter2!=map1.end();iter2++)//begin()为第一个成员,end()为最后一个 
	{
		cout<first<<" : "<second<
C++