STL---map,multimap概述---STL源码剖析读书笔记

关联式容器map的特性是:所有的元素的键值都会被自动排序,默认排序是有小大大,注意map的所有元素类型是pair。

我们可以通过map的迭代器来改变其指向的元素值。标准的STLmap采用RB-tree作为底层的实现机制。每个节点的一个元素都是一个pair。

下面通过一个简单的测试实例来看看用法:

#include <iostream>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <cstring>
#include <string>
#include <map>
using namespace std;
int main()
{
	map<string,int> smap;
	smap[string("jason")]=1;
	smap[string("jerry")]=2;
	smap[string("david")]=3;
	smap[string("alena")]=4;
	pair<string,int> va(string("mason"),5);
	smap.insert(va);
	map<string,int>::iterator map_it=smap.begin();
	for(;map_it!=smap.end();map_it++)
		cout<<map_it->first<<" "<<map_it->second<<endl;
	//面对关联式容器,我们应该尽量使用成员函数find来搜索元素,会比算法库提供的
	//算法find()更有效率,因为该算法只是循序搜索。
	map<string,int>::iterator ite1;
	ite1=smap.find(string("nchen"));
	if(ite1==smap.end())
		cout<<"not found!"<<endl;
	ite1=smap.find(string("jerry"));
	if(ite1!=smap.end())
		cout<<"jerry found!"<<endl;
	ite1->second=9; //可以通过迭代器来改变元素的值
	return 0; 
} 


你可能感兴趣的:(编程,C++,STL)