数据结构应用标准模版库STL—— map的操作

原创 2013年12月06日 12:29:11

#include<iostream>
#include<map>
#include<string>
using namespace std;
 int main()
 {
	 map<string,int> student;
	student["a"]=10;
	student["b"]=20;
	student["c"]=30;
	student["d"]=40;
	student["e"]=50;
	student["f"]=60;
	student["g"]=70;
	student["h"]=80;
	cout<<"***************************************"<<endl;
	cout<<"size of student:"<<student.size()<<endl;  //打印元素个数
	map<string,int>::iterator iter=student.begin ();
	
	 iter=student.find ("bc");  //查找"bc",如果找到iter->second=true;否则iter->second==false;
	 if(iter->second==false)
		 cout<<"find "<<iter->first<<":"<<iter->second<<endl;
	 else cout<<"no find bc"<<endl;

	cout<<"a=>"<<student.find("a")->second<<endl;   //查找
	
	cout<<"***************************************"<<endl;
	cout<<"erase(student.begin()):    "<<endl;  
	student.erase(student.begin());   //删除第一个元素
	cout<<"size of student:"<<student.size()<<endl;
		iter=student.begin();
	 while(iter!=student.end())
	 {
		cout<<iter->first<<":"<<iter->second<<endl;
		iter++;
	 }

	cout<<"***************************************"<<endl;
	 	cout<<"erase(student.begin(),student.end()):    "<<endl;  //删除开始到结束的所有
		student.erase(student.begin() ,student.end());
		cout<<"size of student:"<<student.size()<<endl; 

	cout<<"***************************************"<<endl;//插入操作
	iter=student.begin ();
	student.insert (pair<string,int>("x",100));  //方法1
	student.insert (pair<string,int>("y",110));
	student.insert (pair<string,int>("z",120));
	student.insert (student.find("z"),pair<string,int>("a",130));  //方法2
	cout<<"size of student:"<<student.size()<<endl; 
	iter=student.begin ();
	while(iter!=student.end())
	{
		cout<<iter->first<<":"<<iter->second<<endl;
		iter++;
	}
	pair<map<string,int>::iterator ,bool > ret;  //方法3
	ret=student.insert(pair<string,int>("x",111));
	if(ret.second==false)  //该处应该是ret.second 不能是ret->second
	{	cout<<"element x is already existed";
		 cout<<" with a value of "<<ret.first->second<<endl;
	}
		cout<<"size of student:"<<student.size()<<endl; 

		return 0;

}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

数据结构应用标准模版库STL——表的操作(没有重复的有序表)

表是按位置保存的一个元素序列。因为不允许下标访问,因此为了访问元素的值,我们必须通过其前面的一个元素。然而,所有的插入和删除操作的是ian复杂度均为O(1),即使是那些在表内部执行的操作也是如此。想比...

数据结构应用标准模版库STL——队列的基本操作

队列的基本操作有size(), empty(),push(),front(),pop(); #include #include using namespace std; int main() { ...

数据结构应用标准模版库STL——向量的操作(对排序后的子表进行排序)

向量是基于模版的类,它存储相同数据类型的元素。与数组一样的是,向量对象允许通过下标运算符直接访问元素。然而,与数组不同的是,向量保留其大小信息,且提供先关的size()函数,利用此函数可以访问向量的元...

数据结构应用标准模版库STL——栈(分解栈元素)

我们开发出一种算法:uncouple(),它使用辅助栈查找和从当前栈中删除第一次出现的元素target。重复地删除栈顶部的元素,并将其推入到辅助栈中,知道找到target.使target从原来的栈中出...

数据结构应用标准模版库STL——优先级队列(优先级队列排序)

优先级队列的抽象模型并不把数据存储结构看成是顺序容器。元素在进入优先级队列时,没有任何限制,但在退出时却有一个标准。我们可以把优先级队列想象成数据元素的集合,元素就像被随便丢到垃圾桶一样,彼此没有什么...

例说数据结构&STL(九)——map

map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力。由于这个特性,它完成有可能在我们处理一对一数据的时候...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)