set函数的用法:

这是一个集合函数,这个函数可以处理很多的元素,这些元素可以去重,把相同的元素都去掉,剩下不一样的元素,而且还可以自动给这些元素来排序,从小到大的顺序来排序。

这里我们先来举个例子:

比如:

#include #include using namespace std; int main() { set a; a.insert(1); a.insert(9); a.insert(6); a.insert(6); set::iterator i=a.begin();//这里只能使用迭代器,因为对于set集合里边的元素是不能够想访问那个就能访问哪个的,他是像一个栈一样,需要从前往后一一访问,他并不是一个指针就可以跳跃性访问的。这里iterator是一个迭代器,申明方法只能是这样,当让写法是不一样的也行。 while(i!=a.end()) { cout<

输出就是1 6 9,这里把那个重复出现的6给去掉了。

下边再来想一个问题,能不能我不用去重的集合函数怎么写?当然这里严格意义上说,这个并不是集合,因为这个已经不满足集合的互异性的性质了,但是这里我们为了方便起见,权且叫他集合。。。那么这里就需要把那个set改换成multiset,代码如下:

#include #include using namespace std; int main() {     multiset a;//改了这里.     a.insert(1);     a.insert(9);     a.insert(6);     a.insert(6);     multiset::iterator i=a.begin();//改了这里     while(i!=a.end())     {         cout<

输出结果:

1 6 6 9 下边可能有同学会问,这里能不能将这些元素从大到小来排序?

当然可以,STL是一个没有你想得到写不到的函数的集合,它里边所有的集合,只有你想不到,没有他做不到的。。。这里就是这样改,把seta,改成seta;下边来看一下这个: #include #include using namespace std; struct compare//注意这里很多的map,set函数之类的都是使用结构体,而像sort函数之类的是直接使用函数就行了 {   bool operator()(int a,int b){//注意这里有2个括号,很容易遗忘,其那边一个只是用来重载括号的,后边一个是里边的参数       return a>b;   } }; int main() {     seta;//调用的时候是不一样的,需要注意下     int i=0;     while(i++<10)         a.insert(i);     for(set::iterator j=a.begin();j!=a.end();j++)//还有这里,需要特别注意         cout<

输出10 9 8 7 6 5 4 3 2 1

下边就是直接复制别人的,大家可以去看下:

set的各成员函数列表如下:

c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器

c++ stl容器set成员函数:clear()--清除所有元素

c++ stl容器set成员函数:count()--返回某个值元素的个数

c++ stl容器set成员函数:empty()--如果集合为空,返回true

c++ stl容器set成员函数:end()--返回指向最后一个元素的迭代器

c++ stl容器set成员函数:equal_range()--返回集合中与给定值相等的上下限的两个迭代器

c++ stl容器set成员函数:erase()--删除集合中的元素

c++ stl容器set成员函数:find()--返回一个指向被查找到元素的迭代器

c++ stl容器set成员函数:get_allocator()--返回集合的分配器

c++ stl容器set成员函数:insert()--在集合中插入元素

c++ stl容器set成员函数:lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器

c++ stl容器set成员函数:key_comp()--返回一个用于元素间值比较的函数

c++ stl容器set成员函数:max_size()--返回集合能容纳的元素的最大限值

c++ stl容器set成员函数:rbegin()--返回指向集合中最后一个元素的反向迭代器

c++ stl容器set成员函数:rend()--返回指向集合中第一个元素的反向迭代器

c++ stl容器set成员函数:size()--集合中元素的数目

c++ stl容器set成员函数:swap()--交换两个集合变量

c++ stl容器set成员函数:upper_bound()--返回大于某个值元素的迭代器

c++ stl容器set成员函数:value_comp()--返回一个用于比较元素间的值的函数

c++ stl集合set插入,遍历用法举例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#include

#include

using

namespace

std;

//set插入元素操作

int

main()

{

//定义一个int型集合对象s,当前没有任何元素.由www.169it.com搜集整理

set<

int

> s;

s.insert(8);

//第一次插入8,可以插入

s.insert(1);

s.insert(12);

s.insert(6);

s.insert(8);

//第二次插入8,重复元素,不会插入

set<

int

>::iterator it;

//定义前向迭代器

//中序遍历集合中的所有元素

for

(it=s.begin();it!=s.end();it++)

cout<

system

(

"pause"

);

return

0;

}

c语言中set 函数,C里边的STL里边的Set函数相关推荐

  1. c语言中count的头文件,C++ STL算法系列1---count函数

    一.count函数 algorithm头文件定义了一个count的函数,其功能类似于find.这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果. 编写程序读取一系列int型数据,并将 ...

  2. C语言中的cbp文件是什么,C语言编程入门——函数(上)

    函数是结构化编程语言中最重要的组成部分,模块独立化的基本单位. 函数的声明: # include void f(void);//函数的声明,即声明f是一个函数. void g(void); void ...

  3. c语言中aver是什么意思_什么是C语言函数

    什么是C语言函数 for(i=0;i<5;i++) { scanf("%d",&a[i]); nzp(a[i]); } }void nzp(int v) { -- } ...

  4. c语言中strtod用法,C语言进阶之路:strtod()函数的用法!

    函数原型: #include double strtod(const char *nptr, char **endptr); C语言及C++中的重要函数. 名称含义 strtod(将字符串转换成浮点数 ...

  5. c语言中ndigit用法,求C语言中头文件及函数的含意的总分类

    ALLOC.H 说明内存管理函数(分配.释放等). ASSERT.H 定义 assert调试宏. BIOS.H 说明调用IBM-PC ROM BIOS子程序的各个函数. CONIO. H 说明调用DO ...

  6. c语言中void和define,C语言里面的内联函数(inline)与宏定义(#define)探讨

    C语言里面的内联函数(inline)与宏定义(#define)探讨 先简明扼要,说下关键: 1.内联函数在可读性方面与函数是相同的,而在编译时是将函数直接嵌入调用程序的主体,省去了调用/返回指令,这样 ...

  7. 在c语言中fun的作用是什么,c语言的fun函数用法

    优质回答 回答者:销魂 fun不是库函数,一般是由用户自定义的函数,以它作为名字,比如: int fun(int m,int n) { int max; max=m>n?m:n; return ...

  8. c语言中cv的作用,c ++ - OpenCV的cvWaitKey()函数有什么作用?

    c ++ - OpenCV的cvWaitKey()函数有什么作用? 在执行cvWaitKey()期间会发生什么? 什么是典型的用例? 我在OpenCV参考中看到过,但文档的确切用途并不明确. Simp ...

  9. c语言 recv_sin,C++_C语言中经socket接收数据的相关函数详解,recv()函数: 头文件:#incl - phpStudy...

    C语言中经socket接收数据的相关函数详解 recv()函数:头文件: #include #include 定义函数: int recv(int s, void *buf, int len, uns ...

最新文章

  1. PHP - .htaccess设置显示PHP错误 (转)
  2. 计算机网络中数据的传递过程
  3. 网易技术干货 | 云信Web SDK测试实践
  4. 备份mysql数据库的思路
  5. 一个亿万富翁和一个陌生人的换钱计划
  6. oracle linux查看磁盘,fdisk命令_Linux fdisk命令使用详解:查看磁盘使用情况与磁盘分区...
  7. json和python中字典的区别和联系_Python中 json字符串和字典的区别
  8. java取文本首位_java – 从文本文件中读取的第一个字符:[复制]
  9. [转]测试的三重境界
  10. Bootstrap-分页插件Paginator
  11. html5 mature,Deep Dive into “HTML5”
  12. 多媒体技术知识点整理
  13. 编码器/译码器(Verilog HDL)|计算机组成
  14. 计算机与电视如何通过网络连接,怎么设置电脑和电视共用一根网线上网
  15. 中国草坪和花园设备市场现状研究分析与发展前景预测报告(2022)
  16. 伽卡他卡终极毁灭版---如何卸载!!!
  17. html根据ip和mac地址,关于怎么通过IE浏览器获取客户端的IP地址和Mac地址
  18. Markdown Day01
  19. oracle查看历史oracle database数据库版本并下载
  20. 广东移动待遇及详细工作经历 (转)

热门文章

  1. 电力-故障分析理论及对称分量法
  2. 动态修改logback日志级别
  3. 微信转账2020假图片_2020新版微信头像下载-2020新版微信头像图片大全 v7.0.20
  4. ubuntu 12.04安装截图功能的软件 gimp
  5. fortran:计算第一类椭圆积分
  6. 大规模数据存储技术之Erasure Code(EC编码)
  7. 互联网医院网络安全等保建设方案(附PPT全文)
  8. vue中怎么点击修改文字_vue实现双击修改文字内容并重新排序
  9. 2022年亚马逊AWS认证考试及学习路径
  10. 【uni-app】基于uni-app的Android离线打包,wifi物联网