当前位置: 首页 > news >正文

C++之set/multise容器

C++之set/multise容器

set基本概念
在这里插入图片描述

set构造和赋值

在这里插入图片描述

#include <iostream>
#include<set>
using namespace std;void PrintfSet(set<int>&s)
{for(set<int>::iterator it = s.begin();it != s.end();it++){cout<<*it<<" ";}cout<<endl;
}void test()
{set<int> s1;//插入数据,只有insert方式s1.insert(10);s1.insert(40);s1.insert(20);s1.insert(40);s1.insert(30);//set容器特点: 所有元素插入时候自动被排序//set容器不允许插入重复值PrintfSet(s1);//拷贝构造set<int>s2(s1);PrintfSet(s2);//赋值操作set<int>s3;s3 = s1;PrintfSet(s3);
}int main()
{test();cout << "Hello World!" << endl;return 0;
}

在这里插入图片描述

set大小和交换

在这里插入图片描述

#include <iostream>
#include<set>
using namespace std;void PrintfSet(set<int>&s)
{for(set<int>::iterator it = s.begin();it != s.end();it++){cout<<*it<<" ";}cout<<endl;
}void test()
{set<int> s1;//插入数据,只有insert方式s1.insert(10);s1.insert(40);s1.insert(20);s1.insert(40);s1.insert(30);//set容器特点: 所有元素插入时候自动被排序//set容器不允许插入重复值PrintfSet(s1);if(s1.empty()){cout<<"s1 is empty"<<endl;}else{cout<<"s1 is not empty"<<endl;cout<<"s1's size is "<<s1.size()<<endl;}set<int>s2;s2.insert(100);s2.insert(200);s2.insert(300);s2.insert(400);//swapcout<<"before swap"<<endl;PrintfSet(s1);PrintfSet(s2);s2.swap(s1);cout<<"after swap"<<endl;PrintfSet(s1);PrintfSet(s2);
}int main()
{test();cout << "Hello World!" << endl;return 0;
}

在这里插入图片描述

set插入和删除

在这里插入图片描述

#include <iostream>
#include<set>
using namespace std;void PrintfSet(set<int>&s)
{for(set<int>::iterator it = s.begin();it != s.end();it++){cout<<*it<<" ";}cout<<endl;
}void test()
{set<int> s1;//插入数据,只有insert方式s1.insert(10);s1.insert(40);s1.insert(20);s1.insert(40);s1.insert(30);//set容器特点: 所有元素插入时候自动被排序//set容器不允许插入重复值PrintfSet(s1);s1.erase(s1.begin());PrintfSet(s1);s1.erase(30);PrintfSet(s1);//s1.erase(s1.begin(),s1.end());s1.clear();}int main()
{test();cout << "Hello World!" << endl;return 0;
}

在这里插入图片描述

set查找和统计

在这里插入图片描述

#include <iostream>
#include<set>
using namespace std;void PrintfSet(set<int>&s)
{for(set<int>::iterator it = s.begin();it != s.end();it++){cout<<*it<<" ";}cout<<endl;
}void test()
{set<int> s1;//插入数据,只有insert方式s1.insert(10);s1.insert(40);s1.insert(20);s1.insert(40);s1.insert(30);//set容器特点: 所有元素插入时候自动被排序//set容器不允许插入重复值PrintfSet(s1);set<int>::iterator pos = s1.find(30);if(pos != s1.end()){cout<<"have finded"<<endl;}else{cout<<"no find"<<endl;}
//对于set而言 统计结果 要么是0 要么是1int num = s1.count(30);cout<<"num is "<<num<<endl;
}int main()
{test();cout << "Hello World!" << endl;return 0;
}

在这里插入图片描述

set与multise区别

在这里插入图片描述

#include <iostream>
#include<set>
using namespace std;void PrintfSet(set<int>&s)
{for(set<int>::iterator it = s.begin();it != s.end();it++){cout<<*it<<" ";}cout<<endl;
}void test()
{set<int> s1;//插入数据,只有insert方式pair<set<int>::iterator,bool> ret = s1.insert(10);if(ret.second){cout<<"insert success at first"<<endl;}else{cout<<"insert fail at first"<<endl;}ret = s1.insert(10);if(ret.second){cout<<"insert success at second"<<endl;}else{cout<<"insert fail at second"<<endl;}multiset<int>m1;//允许插入重复值m1.insert(10);m1.insert(10);m1.insert(10);m1.insert(10);for(multiset<int>::iterator it = m1.begin();it != m1.end();it++){cout<<*it<<" ";}cout<<endl;
}int main()
{test();cout << "Hello World!" << endl;return 0;
}

在这里插入图片描述

pair对组的创建

在这里插入图片描述

#include <iostream>
#include<set>
using namespace std;void PrintfSet(set<int>&s)
{for(set<int>::iterator it = s.begin();it != s.end();it++){cout<<*it<<" ";}cout<<endl;
}void test()
{//第一种方式pair<string,int>p("Tom",20);cout<<"name is "<<p.first<<"age is "<<p.second<<endl;//第二种方式pair<string,int>p2 = make_pair("Jin",21);cout<<"name is "<<p2.first<<"age is "<<p2.second<<endl;
}int main()
{test();cout << "Hello World!" << endl;return 0;
}

在这里插入图片描述

set排序

在这里插入图片描述

#include <iostream>
#include<set>
using namespace std;void PrintfSet(set<int>&s)
{for(set<int>::iterator it = s.begin();it != s.end();it++){cout<<*it<<" ";}cout<<endl;
}
class MyCompare
{
public:bool operator()(int v1,int v2){return v1>v2;}
};void test()
{set<int>s1;s1.insert(10);s1.insert(40);s1.insert(30);s1.insert(50);s1.insert(20);PrintfSet(s1);//指定排序规则为从大到小set<int,MyCompare>s2;s2.insert(10);s2.insert(40);s2.insert(30);s2.insert(50);s2.insert(20);for(set<int,MyCompare>::iterator it = s2.begin();it != s2.end();it++){cout<<*it<<" ";}cout<<endl;
}int main()
{test();cout << "Hello World!" << endl;return 0;
}

在这里插入图片描述

set存放自定义数据

#include<iostream>
#include<string>
using namespace std;
#include<set>
//set容器排序,存放自定义数据类型
class Person
{
public:Person(string name,int age){this->m_name = name;this->m_age = age;}string m_name;int m_age;
};class MyCompare
{
public:bool operator()(const Person&p1, const Person& p2){//按照年龄进行降序return p1.m_age > p2.m_age;}
};void test()
{//指定排序规则为从大到小set<Person, MyCompare>s;//创建Person对象Person p1 ("liubei",23);Person p2("zhangfei", 21);Person p3("guanyu", 22);Person p4("zhaoyun", 24);s.insert(p1);s.insert(p2);s.insert(p3);s.insert(p4);for (set<Person, MyCompare>::iterator it = s.begin();it != s.end();it++){cout << "name is " << (*it).m_name << "age is " << (*it).m_age << endl;}cout << endl;
}int main()
{test();system("pause");return 0;
}

在这里插入图片描述

相关文章:

C++之set/multise容器

C之set/multise容器 set基本概念 set构造和赋值 #include <iostream> #include<set> using namespace std;void PrintfSet(set<int>&s) {for(set<int>::iterator it s.begin();it ! s.end();it){cout<<*it<<" ";}cout&l…...

本地部署AutoGPT

我们都了解ChatGPT&#xff0c;是Openai退出的基于GPT模型的新一代 AI助手&#xff0c;可以帮助解决我们在多个领域的问题。但是你会发现&#xff0c;在某些问题上&#xff0c;ChatGPT 需要经过不断的调教与沟通&#xff0c;才能得到接近正确的答案。对于你不太了解的领域领域&…...

ProtocolBuffers(protobuf)详解

目录 前言特点语法定义关键字JSON与Protocol Buffers互相转换gRPC与Protocol Buffers的关系 前言 Protocol Buffers&#xff08;通常简称为protobuf&#xff09;是Google公司开发的一种数据描述语言&#xff0c;它能够将结构化数据序列化&#xff0c;可用于数据存储、通信协议…...

HTTP 到 HTTPS 再到 HSTS 的转变

近些年&#xff0c;随着域名劫持、信息泄漏等网络安全事件的频繁发生&#xff0c;网站安全也变得越来越重要&#xff0c;也促成了网络传输协议从 HTTP 到 HTTPS 再到 HSTS 的转变。 HTTP HTTP&#xff08;超文本传输协议&#xff09; 是一种用于分布式、协作式和超媒体信息系…...

清华学霸告诉你:如何自学人工智能?

清华大学作为中国顶尖的学府之一&#xff0c;培养了许多优秀的人才&#xff0c;其中不乏在人工智能领域有所成就的学霸。通过一位清华学霸的经验分享&#xff0c;揭示如何自学人工智能&#xff0c;帮助你在这场科技浪潮中勇往直前。 一、夯实基础知识 数学基础&#xff1a;学习…...

Ubuntu 安装VMware Tools选项显示灰色,如何安装VMware Tools

切换apt源为阿里云&#xff1a; https://qq742971636.blog.csdn.net/article/details/134291339 只要你的网络没问题&#xff0c;你直接执行这几个命令&#xff0c;重启ubuntu虚拟机即可、 sudo dpkg --configure -a sudo apt-get autoremove open-vm-tools sudo apt-get ins…...

SpringBoot 2.x 实战仿B站高性能后端项目

SpringBoot 2.x 实战仿B站高性能后端项目 下栽の地止&#xff1a;请看文章末尾 通常SpringBoot新建项目&#xff0c;默认是集成了Maven&#xff0c;然后所有内容都在一个主模块中。 如果项目架构稍微复杂一点&#xff0c;就需要用到Maven多模块。 本文简单概述一下&#xff0c…...

vscode文件夹折叠问题

今天发现一个vscode的文件夹显示的问题&#xff0c;首先是这样的&#xff0c;就是我的文件夹里又一个子文件夹&#xff0c;子文件夹里有一些文件&#xff0c;但是我发现无法折叠起这个子文件夹&#xff0c;总是显示全部的文件&#xff0c;这让我备份很难&#xff0c;具体参考 h…...

4-flask-cbv源码、Jinja2模板、请求响应、flask中的session、flask项目参考

1 flask中cbv源码 2 Jinja2模板 3 请求响应 4 flask中的session 5 flask项目参考 1 flask中cbv源码 ***flask的官网文档&#xff1a;***https://flask.palletsprojects.com/en/3.0.x/views/1 cbv源码执行流程1 请求来了&#xff0c;路由匹配成功---》执行ItemAPI.as_view(item…...

2.Pandas数据预处理

2.1 数据清洗 以titanic数据为例。 df pd.read_csv(titanic.csv) 2.1.1 缺失值 &#xff08;1&#xff09;缺失判断 df.isnull() &#xff08;2&#xff09;缺失统计 # 列缺失统计 df.isnull().sum(axis0) # 行缺失统计 df.isnull().sum(axis1) # 统计缺失率 df.isnu…...

C# IEnumerable<T>介绍

IEnumerable 是 C# 中的一个接口&#xff0c;它是 .NET Framework 中的集合类型的基础。任何实现了 IEnumerable 接口的对象都可以进行 foreach 迭代。 IEnumerable 只有一个方法&#xff0c;即 GetEnumerator&#xff0c;该方法返回一个 IEnumerator 对象。IEnumerator 对象用…...

九洲

《九洲》 作者&#xff0f;罗光记 九洲春色映朝阳&#xff0c; 洲渚风光似画廊。 柳絮飘飞花似雪&#xff0c; 九州繁华共锦裳。 水波荡漾鱼儿跃&#xff0c; 洲边鸟语唤晨光。 春风拂过千里岸&#xff0c; 九洲儿女笑语扬。...

基于Genio 700 (MT8390)芯片的AR智能眼镜方案

AR眼镜是一种具有前所未有发展机遇的设备&#xff0c;无论是显示效果、体积还是功能都有明显的提升。AR技术因其智能、实时、三维、多重交互和开放世界的特点备受关注。 AR眼镜集成了AR技术、语音识别、智能控制等多项高科技功能&#xff0c;可以帮助用户实现更加便捷、高效、个…...

锐捷OSPF认证

一、知识补充 1、基本概述 OSPF区域认证和端口认证是两种不同的认证机制&#xff0c;用于增强OSPF协议的安全性。 OSPF区域认证&#xff08;OSPF Area Authentication&#xff09;&#xff1a;这种认证机制是基于区域的。在OSPF网络中&#xff0c;每个区域都可以配置一个区域…...

M2 Mac Xcode编译报错 ‘***.framework/‘ for architecture arm64

In /Users/fly/Project/Pods/YYKit/Vendor/WebP.framework/WebP(anim_decode.o), building for iOS Simulator, but linking in object file built for iOS, file /Users/fly/Project/Pods/YYKit/Vendor/WebP.framework/WebP for architecture arm64 这是我当时编译模拟器时报…...

Python算法题2023 输出123456789到98765432中完全不包含2023的数有多少

题目&#xff1a; 无输入&#xff0c;只需输出结果&#x1f910; 这个数字比较大&#xff0c;小伙伴们运行的时候要给代码一点耐心嗷つ﹏⊂ &#xff0c;下面是思路&#xff0c;代码注释也很详细&#xff0c;大致看一下吧&#xff08;&#xff3e;∀&#xff3e;●&#xff09…...

SpringBoot整合Thymeleaf

Thymeleaf 支持 HTML 原型&#xff0c;可以让前端工程师在浏览器中直接打开查看样式&#xff0c;也可以让后端工程师结合真实数据查看显示效果 Thymeleaf 除了展示基本的 HTML &#xff0c;进行页面渲染之外&#xff0c;也可以作为一个 HTML 片段进行渲染&#xff0c;例如我们在…...

OpenAI的多函数调用(Multiple Function Calling)简介

我在六月份写了一篇关于GPT 函数调用&#xff08;Function calling) 的博客https://blog.csdn.net/xindoo/article/details/131262670&#xff0c;其中介绍了函数调用的方法&#xff0c;但之前的函数调用&#xff0c;在一轮对话中只能调用一个函数。就在上周&#xff0c;OpenAI…...

在国内购买GPT服务前的一定要注意!!!

本人已经入坑GPT多日&#xff0c;从最开始的应用GPT到现在的自己研发GPT&#xff0c;聊聊我对使用ChatGPT的一些思考&#xff0c;有需要使用GPT的朋友或者正在使用GPT的朋友&#xff0c;一定要看完这篇文章&#xff0c;可能会比较露骨&#xff0c;也算是把国内知识库、AI的套路…...

Redis新操作

1.Bitmaps 1.1概述 Bitmaps可以对位进行操作&#xff0c;实际上它就是一个字符串&#xff0c;可以将Bitmaps想象为一个以位为单位的数组&#xff0c;数组中的每个元素只能存储0或者1&#xff0c;数组的下标在Bitmaps被称为偏移量。 setbit key offset value&#xff1a;设置o…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

Python爬虫实战:研究Restkit库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...