栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++ set用法详解

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++ set用法详解

c++ stack用法详解

c++ set用法详解
      • set
      • set常用操作
      • set单元素应用
      • set多元素应用(结构体)
      • 例题

set

set就是集合,STL的set用二叉树实现,集合中的每个元素只出现一次(参照数学中集合的互斥性),并且是排好序的(默认按键值升序排列)

访问元素的时间复杂度是 O ( log ⁡ 2 n ) O(log_2n) O(log2​n)

在c++中,set的头文件是#include

set具有迭代器set::iterator i 定义一个迭代器,名为i 可以把迭代器理解为C语言的指针

set常用操作
set q;     //以int型为例 默认按键值升序
set> p;  //降序排列 
int x;
q.insert(x);	//将x插入q中
q.erase(x);		//删除q中的x元素,返回0或1,0表示set中不存在x
q.clear();		//清空q
q.empty();		//判断q是否为空,若是返回1,否则返回0
q.size();		//返回q中元素的个数
q.find(x);		//在q中查找x,返回x的迭代器,若x不存在,则返回指向q尾部的迭代器即 q.end()
q.lower_bound(x); //返回一个迭代器,指向第一个键值不小于x的元素
q.upper_bound(x); //返回一个迭代器,指向第一个键值大于x的元素

q.rend();		  //返回第一个元素的的前一个元素迭代器
q.begin();		  //返回指向q中第一个元素的迭代器

q.end();		 //返回指向q最后一个元素下一个位置的迭代器
q.rbegin();		 //返回最后一个元素
set单元素应用
#include
#include
using namespace std;
int main()
{
	set q;   //默认按升序排列 
	q.insert(5);
	q.insert(5);
	q.insert(5);
	cout<<"q.size "<::iterator i;
	for( i=q.begin();i!=q.end();i++)   //set的遍历 
		cout<<*i<<" ";				   //输出1 2 3 4,可见自动按键值排序 
	cout<> p;  //降序排列 
	p.insert(1);
	p.insert(2);
	p.insert(3);
	p.insert(4);
	p.insert(5);
	for(i=p.begin();i!=p.end();i++)
		cout<<*i<<" ";
	cout< 

set多元素应用(结构体)
#include
#include
using namespace std;
struct node{
	int a,b;
	bool operator< (const node W)const
	{
		return a>W.a;  //按a的值升序 
	}
}t;
int main()
{
	set q;
	t.a=1;
	t.b=2;
	q.insert(t);
	
	t.a=4;
	t.b=2;
	q.insert(t);
	
	t.a=3;
	t.b=5;
	q.insert(t);	
	
	set::iterator i;
	for(i=q.begin();i!=q.end();i++)
	{
		t=*i;
		cout< 

例题

题目:HDU - 2094 产生冠军

代码:

#include
#include
using namespace std;
int main()
{
	int n;
	string a,b;
	while(cin>>n && n)
	{
		set A,B;
		for(int i=0;i
			cin>>a>>b;
			A.insert(a);
			A.insert(b);
			B.insert(b);
		}
		
		if(A.size()-B.size()==1)
			cout<<"Yesn";
		else
			cout<<"Non";
	}
	return 0;
}

c++ stack用法详解

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857945.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号