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;
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_42655231/article/details/82760517
set
今日推荐