c++set集使用

#include<iostream>
#include<string>
#include<vector>
#include<set>
//set不能重复,multiple可以重复
using namespace std;

//写一个函数用来描述set和muiltiset里边的数据
//把函数做成模板函数
template<typename Container>

void PrintContents(const Container &c);


int main()
{
	//set和multiple速度非常快
	//插入,删除,查找速度很快
	set<int> a;
	multiset<int> ma;

	a.insert(60);
	a.insert(-1);
	a.insert(3);
	a.insert(30);
	a.insert(300);
	//a不允许重复

	cout << "显示set里边的数据:" << endl;
	PrintContents(a);
	//set<int>::const_iterator i = a.begin();
	//while (i != a.end())
	//{
	//	cout << *i <<endl;
	//	++i;//插入之后会自动排序,set是一种红黑树
	//}

	ma.insert(60);
	ma.insert(a.begin(), a.end());
	ma.insert(3000);

	ma.count(3000);//计算ma有几个3000
	
	cout << "multiset里有几个3000::" << ma.count(3000) << endl;

	//find查找和count
	set<int>::iterator  i=a.find(-1);//find的返回结果是一个迭代器
	if (i != a.end())
		cout << "找到了:" << *i << endl;
	else
		cout << "没找到" << endl;

	//erase
	cout << "a里有多少个数据" << a.size() << endl;

	cout << "删除之前a里的数据是:" << endl;
	PrintContents(a);
	int e = 0;
	cin >> e;
	a.erase(e);
	cout << "删除之后的数据是:" << endl;
	PrintContents(a);



	system("pause");
	return 0;
}

template<typename Container>

void PrintContents(const Container &c)
{

	Container::const_iterator i = c.begin();
	while (i != c.end())
	{

		cout << *i << endl;
		++i;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值