C++ STL set容器常见函数使用

 

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
//set 容器知识
#include <set>
int main() {
	//创建一个int类型的 set容器
	set<int> container;
	//1.insert(x) 向容器中添加x元素
	//set容器中的元素都是不重复 反复使用insert添加同一元素 在容器中只会存在一个元素
	container.insert(10);
	container.insert(20);
	container.insert(20);
	container.insert(40);
	container.insert(50);
	

	//2.erase(x) 删除容器中x元素 -- 返回值为 0 or 1
	if (container.erase(10)) {
		cout << "删除成功" << endl;
	}

	//3.empty() 判断容器是否为空 为空则返回1 不然返回0
	if (!container.empty()) {
		cout << "容器非空" << endl;
	}
	//4.迭代器:指针
	//set<int>::iterator ite;
	
	//<--正向迭代器>
	//container.begin() 返回指向容器的第一个元素的迭代器 
	set<int>::iterator ite1 = container.begin();

	//container.end()  返回指向容器的最后一个元素的下一个元素的迭代器
	set<int>::iterator ite2 = container.end();

	//<--反向迭代器>
	//container.rbegin() 返回指向容器的最后一个元素的迭代器
	set<int>::reverse_iterator rite1 = container.rbegin();
	//container.rend()  返回指向容器中第一个元素的上一个元素的迭代器
	set<int>::reverse_iterator rite2 = container.rend();

	//5.find(x) 在容器中查询x元素 有此元素,则返回该元素的迭代器  如果没有,则返回指向尾部的迭代器 即container.end()
	if (container.find(20) != container.end()) {
		cout << *container.find(20) << endl;
	}
	else {
		cout << "不存在此元素" << endl;
	}

	//6.增强for 输出 ,可以使用auto类型 灵活简单
	for (auto i : container) {
		cout << "--"<<i<<"--" << endl;
	}

	//7.container.lower_bound(x) 返回第一个大于等于x的元素的迭代器  如果不存在 则返回指向尾部的迭代器
	if (container.lower_bound(300) != container.end()) {
		cout << *container.lower_bound(300);
	}
	else {
		cout << "没有大于300的元素" << endl;
	}

	//8.使用反向迭代器输出
	cout << "使用反向迭代器输出" << endl;
	while (rite1 != rite2) {
		cout <<"--" << *rite1 << "--"<<endl;
		rite1++;
	}

	//9.size() 返回set容器的有效元素长度
	cout <<container.size()<<endl;

	//10.clear() 清空容器
	container.clear();
	cout << container.size()<<endl;
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值