当前位置:首页 » 《资源分享》 » 正文

c++ set用法详解超详细 适合零基础小白

14 人参与  2024年05月27日 09:33  分类 : 《资源分享》  评论

点击全文阅读


目录

1.set简介

 2.插入数据

 3.删除数据

 4.其它常用方法

1.set简介

set 是 C++ 标准库中的一个容器,属于关联容器的一种。它是一个有序集合,其中的元素是唯一的,即每个元素只能在集合中出现一次。set 是基于红黑树实现的,这使得插入、删除和查找操作的时间复杂度都是 O(log n)。

 2.插入数据

使用insert(i)

set<int> s;s.insert(1);s.insert(3);

 3.删除数据

使用erase()删除某一个值

set<int> s;s.insert(1);s.insert(3);s.insert(7);s.insert(5);s.erase(s.begin());  //通过迭代器删除s.erase(5);   //删除指定值 

 使用clear()清空所有值

set<int> s;s.insert(1);s.insert(3);s.insert(7);s.insert(5);s.clear();  //清空 

 4.其它常用方法

(1)empty() 判断是否为空

set<int> s;s.insert(1);s.insert(3);s.insert(7);s.insert(5);cout<<s.empty();  //不为空,输出0 

(2)size() 返回集合中值的个数

set<int> s;s.insert(1);s.insert(3);s.insert(7);s.insert(5);cout<<s.size();  //输出4

(3)迭代器

set<int> s;s.insert(1);s.insert(3);s.insert(7);s.insert(5); //set会默认升序排列 for(set<int>::iterator it=s.begin();it!=s.end();it++)  //输出1 3 5 7 {cout<<*it<<' ';}

(4)count()计数,因为set中没有重复元素,所以count(n)只能为0或1

set<int> s;s.insert(1);s.insert(1);s.insert(5); //set会默认升序排列 cout<<s.count(1)<<endl;  //即使插入两次也只有一个1,输出1 cout<<s.count(2)<<endl;   //没有2,输出0

(5)lower_bound(key_value) ,返回第一个大于等于key_value的值;                 upper_bound(key_value)返回最后一个大于等于key_value的值

set<int> s;s.insert(1);s.insert(1);s.insert(5); //set会默认升序排列 cout<<*s.lower_bound(1)<<endl;  //输出1 cout<<*s.upper_bound(1)<<endl;   //输出5

(6)swap() 交换两个set集合

set<int> s,s2;s.insert(1);s.insert(3);s.insert(5); //set会默认升序排列 s2.insert(2);s2.insert(4);s.swap(s2);for(set<int>::iterator it=s.begin();it!=s.end();it++)  //输出2 4 {cout<<*it<<' ';}cout<<endl;for(set<int>::iterator it=s2.begin();it!=s2.end();it++)  //输出1 3 5 {cout<<*it<<' ';}


点击全文阅读


本文链接:http://zhangshiyu.com/post/114064.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1