IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> STL中set容器的简单使用笔记 -> 正文阅读

[系统运维]STL中set容器的简单使用笔记

**头文件**#include<set>(使用万能头文件include<bits/stdc++>的除外)。

简单的特点:

???????1.在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序(默认从小到大

? ? ? ?2.set中数元素的值不能直接被改变

? ? ? ?3.set中数元素的值不能直接被改变

? ? ? ?4.当对容器中的元素进行插入或者删除时,操作之前的所有迭代器在操作之后依然有效。

? ? ? ? 5.set容器内所有元素都是以节点的方式来存储,其节点结构和链表差不多,指向父节点和子节点。

定义一个容器;

  • 1:using namespace std;
  • 2:直接set<成员类型>成员名

例如:定义一个整型的set容器叫做s,直接set<int> s就行了。

set中常用的方法? :

erase(it)? ? ? ? ? ? ? ? ?删除迭代器指针it处元素

????????s.erase(s.begin()) 删除s.begin()的元素

begin()????    ,返回set容器的第一个元素的地址(想返回值注意加*

????????s.begin()?或 ?*s.begin()?即可

end()      ,返回set容器的最后一个元素的地址(想返回值注意加*

?????????s.end()??或 *s.end()即可

clear()??   ??? ?,删除set容器中的所有的元素

  • step1:将你的set容器清空。

例如:将刚才定义的s清空,则为:s.clear()即可。

empty()    ,判断set容器是否为空

  • step1:判断你的容器是否为空。

例如:判断s是否为空,只需 if(s.empty())? 即可,判断是否非空,只需if (!s.empty())。

size()      ,返回当前set容器中的元素个数

??? ?例如:询问s的大小,只需 printf("%d\n",s.size())即可。

特别的,size返回的是非重复元素,而不是所有元素。

例如:

s里面有{1 2 3 4 5 6 7 8} 8个元素,那么他的返回值是8;

s里面有{1 1 1 1 1 1 1 1} 8个元素,那么他的返回值是1;

s里面有{1 1 1 2 2 2? 2? 8} 8个元素,那么他的返回值是3。

insert()? ? ? ? ? ? ? ,向容器中插入一个元素

????作用:往你定义的set里面加上一个数。

  • step1:定义一个辅助变量tmp;
  • step2:输入tmp;
  • step3:将tmp放进你定义的set容器里面。

例如:往刚定义的s里面放个8,那么直接:s.insert(8)即可。

列子

#include<set>
#include<iostream>
using namespace std;
int main() {
	set<int>s;
	int a[105], n;
	cin >> n;//输入的袁术的个数
	for (int i = 0; i < n; i++) {
		cin >> a[i];
		s.insert(a[i]);
	}
	cout << s.size() << endl;
	while (!s.empty()) {
		cout << *s.begin() << '\t';
		s.erase(s.begin());
	}
	return 0;
}

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:53:40  更:2021-10-12 23:55:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:56:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码