C++ set的用法 附带演示代码 (注释有代码详细介绍

演示代码:

#include<iostream>

//看了C++标准库后发现 set与Multiset 基本上是绑在一起的
//set:不允许有重复元素,自动元素排序

//Multiset:允许有重复元素,自动元素排列

//两者通常以平衡二叉树完成


//头文件(两者的头文件均为set)
#include<set>
using namespace std;
void show(set<int>a)
{
    int feed = 1;//换行用
    //set的迭代                                set的end指向空处
    for(set<int>::iterator i = a.begin(); i != a.end(); i++)
	//for (int i = 0; i < a.size(); i++)//错误 应该用迭代器
    {

    	//错误!  set不能直接用这种方式取值 应当用
    	//cout << a[i] << " ";
	
	    cout << *i << "\t";
	
	    if (feed % 10 == 0)
	    	cout <<"Has now been output :"<<feed<< endl;
    	feed++;
    }
}
int main()

{
    //此为默认的从小到大排序
    set<int>aa;

    for (int i = 0; i < 30; i++)
    {
    	//set使用insert插入元素 而非vector中的push_back
    	aa.insert(-i * 10 + 1);
	}

    //展示
	show(aa);

	cout << "begin:" << *aa.begin() << endl;

	// 错误 set的end指向空
	//cout << "end:"<<*aa.end() << endl;

	// 正确 输出set的最后一个元素
	cout << "last:" << *(--aa.end()) << endl;

    //empty判断set是否为空 返回一个bool类型的值 为空返回true
	cout << "empty():" << aa.empty() <<endl;
	if (!aa.empty())
	cout << "not empty!" << endl;

	//size() 取元素的个数
	cout << "size():" << aa.size() << endl;

	//能容纳的元素的最大限值 不知道做什么用
	cout << "max_size():" << aa.max_size() << endl;

    //用于寻找set中某数的个数  set中可用来判断是否存在某元素  而multiset中可用来得到元素重复的个数
    cout << "12的个数:" << aa.count(12) << endl;
	cout << "1的个数:" << aa.count(1) << endl;

	//用于寻找set中某数 若找到返回其迭代指针 否则返回end()
	set<int>::iterator finds = aa.find(1);
	cout << "1元素的上一个元素:" << *(--finds) << endl;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值