STL中map,set的基本用法示例

本文主要是使用了STL中德map和set两个容器,使用了它们本身的一些功能函数(包括迭代器),介绍了它们的基本使用方式,是一个使用熟悉的过程。

map的基本使用:

#include "stdafx.h"
#include<iostream>
#include<set>
#include<string>
#include<vector>
#include<map>

using namespace std;

int main()                
{
	//定义map对象
	map<string,float> myMap;
	myMap["jack"]=98.5;
	myMap["bomi"]=98.0;
	myMap["Kate"]=97.6;

	map<string,float>::iterator itm;
	for(itm=myMap.begin();itm!=myMap.end();itm++)
	{
		//按照键值与映照的数据输出
		cout<<(*itm).first<<" : "<<(*itm).second<<endl;
	}


	int k=0;
	cin>>k;
	return 0;
}
set的基本使用示例:

#include "stdafx.h"
#include<iostream>
#include<set>
#include<string>
#include<vector>

using namespace std;

int main()                
{
	set<int> mySet;
	mySet.insert(8);
	mySet.insert(1);
	mySet.insert(12);
	mySet.insert(6);
	mySet.insert(8);            //这里因为前面已经插入了8,重复元素,不会插入。

	set<int>::iterator its;  //set容器的迭代器

	cout<<"正向遍历:"<<" ";
	for(its=mySet.begin();its!=mySet.end();its++)   //正向遍历
	{
		cout<<*its<<" ";
	}
	cout<<endl<<"反向遍历:"<<" ";

	set<int>::reverse_iterator rit;            //set的逆向迭代器
	for(rit=mySet.rbegin();rit!=mySet.rend();rit++)
	{
		cout<<*rit<<" ";
	}

	//删除键值为6的元素
	mySet.erase(6);
	cout<<endl<<"删除之后的反向遍历:"<<" ";
    for(rit=mySet.rbegin();rit!=mySet.rend();rit++)
	{
		cout<<*rit<<" ";
	}

	//set中元素的检索
	mySet.insert(17);
	mySet.insert(10);

	cout<<endl;
	its=mySet.find(10);            //使用迭代器来查找,没找到就返回end().
	if(its!=mySet.end()) cout<<"找到了"<<*its<<endl;
	else cout<<"没有找到查询的元素"<<endl;

	its=mySet.find(100);
    if(its!=mySet.end()) cout<<"找到了"<<*its<<endl;
	else cout<<"没有找到查询的元素"<<endl;	


	int k=0;
	cin>>k;
	return 0;
}

一些细节的地方说明,请看源码中的注释,谢谢!



原文地址:https://www.cnblogs.com/NewWork/p/3260543.html