stl之map

 Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果

其特性是,所有元素都会根据元素的键值自动排序,map的所有元素都是pair,同时拥有实值键值,pair的

第一元素视为键值,第二元素视为实值,并且不允许两个元素拥有相同的键值。

1. map最基本的构造函数;
   map<string , int >mapstring;         map<int ,string >mapint;
   map<sring, 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,"aclive"));
   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())
                cout<<"we do not find 112"<<endl;
   else cout<<"wo find 112"<<endl;
4,map中元素的删除:
   如果删除112;
   map<int ,string >::iterator l_it;;
   l_it=maplive.find(112);
   if(l_it==maplive.end())
        cout<<"we do not find 112"<<endl;
   else  maplive.erase(l_it);  //delete 112;
5,map中 swap的用法:
  Map中的swap不是一个容器中的元素交换,而是两个容器交换

实例:

#include<iostream>
#include<map>
#include<string>
using  namespace std;

int main()
{
	map<string,int>simap;
	simap[string("jjhou")] = 1;
	simap[string("jjlei")] = 2;
	simap[string("jjduan")] = 3;
	simap[string("jjwang")] = 4;
	
	pair<string,int>value(string("david"),5);
	simap.insert(value);

	map<string,int>::iterator  simap_iter = simap.begin();
	for (;simap_iter != simap.end();++simap_iter)
		cout<< simap_iter->first<< ' '
			<<simap_iter->second<<endl;
	int number = simap[string("jjlei")];
	cout<<number<<endl;

	map<string,int>::iterator  ite1;

	ite1 = simap.find(string("mchen"));
	if(ite1 == simap.end())
		cout<<"not found mchen"<<endl;

	ite1 =simap.find(string("jerry"));
	if(ite1 == simap.end())
		cout<<"not found jerry"<<endl;

	ite1->second = 9;
	int number2 = simap[string("jerry")];
	cout << number2<<endl;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值