Set 和 multiset 容器(二)

Set 和 multiset 容器(二)

开发工具与关键技术:Visual Studio、C++
作者:张国军
撰写时间:2019年08月16日

set 的大小

#include  <iostream>
#include <set>
using  namespace std;
void show(set<int>setInt)
{
	for (set<int>::iterator it = setInt.begin(); it != setInt.end(); ++it)
	{
		int iItem = *it;
		cout << iItem<<" "; //或直接使用 cout << *it
	}
	cout << endl;
}
void main()
{
	//set.size(); //返回容器中元素的数目
	//set.empty(); //判断容器是否为空
	set<int> setIntA;
	setIntA.insert(3);
	setIntA.insert(1);
	setIntA.insert(7);
	setIntA.insert(5);
	setIntA.insert(9);
	if (!setIntA.empty())
	{
		int iSize = setIntA.size(); //5
		cout << "setIntA.size():" << iSize << endl;
	}
	cout << "---show(setIntA)---"<<endl;
	show(setIntA);
}

在这里插入图片描述
从例子可以看出,如果我们的容器不为空的话,那么就输出我们的容器的元素总数,那么我们的容器setIntA从结果可以看到有五个元素,分别为:1、3、5、7、9

set 的删除

#include  <iostream>
#include <set>
using  namespace std;
void show(set<int>setInt)
{
	for (set<int>::iterator it = setInt.begin(); it != setInt.end(); ++it)
	{
		int iItem = *it;
		cout << iItem<<" "; //或直接使用 cout << *it
	}
	cout << endl;
}
void main()
{
	//set.clear(); //清除所有元素
	//set.erase(pos); //删除 pos 迭代器所指的元素,返回下一个元素的迭代器。
	//set.erase(beg, end); //删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。
	//set.erase(elem); //删除容器中值为 elem 的元素。
	set<int> setIntA;
	setIntA.insert(1);
	setIntA.insert(3);
	setIntA.insert(5);
	setIntA.insert(6);
	setIntA.insert(9);
	setIntA.insert(11);
	set<int>::iterator itBegin = setIntA.begin();
	++itBegin;
	set<int>::iterator itEnd = setIntA.begin();
	++itEnd;
	++itEnd;
	++itEnd;
	cout << "---setIntA---" << endl;
	show(setIntA);
	setIntA.erase(itBegin, itEnd);
	cout << "---setIntA.erase(itBegin, itEnd);---" << endl;
	//此时容器 setInt 包含按顺序的 1,6,9,11 四个元素。
	show(setIntA);
	//删除容器中第一个元素
	setIntA.erase(setIntA.begin()); //6,9,11
	cout << "---setIntA.erase(setIntA.begin());---" << endl;
	show(setIntA);
	//删除容器中值为 9 的元素
	setIntA.erase(9);
	cout << "---setIntA.erase(9);---" << endl;
	show(setIntA);
	//删除 setInt 的所有元素
	setIntA.clear(); //容器为空
	cout << "---setIntA.clear();---" << endl;
	show(setIntA);

在这里插入图片描述
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值