C++ STL set集合容器简单使用

C++ STL set集合容器简单使用

简介

set事一种关联式容器,刻画了具有某些相同特征的事物的集合,类似数学概念 ,与【STL的map】相似,但是不同的是,set的键是元素本身

通过查询,可以快速确定一个元素是否位于某个集合之中

常用方法

set的创建与初始化

可以单纯的像int a一样声明一个set

set<int> se;

也可以由两个迭代器确定的一段序列来初始化集合,即把序列中的元素全部加入集合中

vector<int> vec;
set<int> se(vec.begin(), vec.end());
set中添加元素:insert
set<int> se;
pair<set<int>::iterator, bool> p;

/*
name    : insert(x)
param x : 要插入的元素
return  : 一个pair<迭代器,bool>,迭代器表示元素位置,bool变量表示是否插入成功
*/
p = se.insert(x);

当然可以简单的直接insert,因为普通set无重复元素

se.insert(1);
set中查找元素:find

与map不同,set查找的键值,就是元素的值本身

set<int> se;
set<int>::iterator iter;

/*
param x : 要查找的元素对象
return  : 一个迭代器,指向被查找的元素,如果没找到,指向se.end()
*/
iter = se.find(x);

可以通过一下语句简单的判断元素是否被找到:

if(iter != se.end())
set中删除元素:erase
set<int> se;
set<int>::iterator iter = se.find(要查找的元素);

/*
param iter : 指向要删除的单个元素的迭代器
return     : 
*/
se.erase(iter);

值得注意的是erase函数也可以删除一段由迭代器指定的区间的所有元素

se.erase(iter_left, iter_right);

使用例

简单的创建set,插入元素,查找元素,删除元素
在这里插入图片描述

#include <iostream>
#include <set>

using namespace std;

int main()
{
	// 初始化 
	set<int> se;
	se.insert(1);
	se.insert(2);
	se.insert(3);
	set<int>::iterator iter;
	
	// 查找 
	iter = se.find(2);
	if(iter != se.end())
	{
		cout<<"found"<<endl;
	}
	else
	{
		cout<<"not found"<<endl;
	}
	
	// 删除 
	se.erase(iter);
	iter = se.find(2);
	if(iter != se.end())
	{
		cout<<"found"<<endl;
	}
	else
	{
		cout<<"not found"<<endl;
	}
	
	return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值