给你两个集合,要求{A} + {B}
先看题:

看完题后你会觉得:哇,好简单,STL一下就出来啦。
#include <iostream>
#include <set>using namespace std;int main() {int n, m;while (cin >> n >> m) {set<int> set_a;for (int i = 0; i < n+m; i++) {int element;cin >> element;set_a.insert(element);}for (const auto& element : set_a) {cout << element << " ";}cout << endl;}return 0;
}
可能会有一点点的变式,也就是把 set set_a;放循环外面,循环中加一个set_a.clear();
如果你不想使用循环遍历容器也可以使用迭代器遍历,
当然这段代码有一点点小问题,最后一个数的后面应该不含空格
例下:来自这里
#include <iostream>
#include <set>
using namespace std;int main()
{int n, m, val;set<int> result;while(cin >> n >> m) {result.clear();for(int i=1; i<=n+m; i++) {cin >> val;result.insert(val);}bool nofirstflag = false;for(set<int>::iterator it = result.begin(); it != result.end(); it++) {if(nofirstflag)cout << " ";nofirstflag = true;cout << *it;}cout << endl;}return 0;
}
当然也有可能用的数组:
#include <iostream>
#include <algorithm>
#include <vector>using namespace std;int main()
{int n, m;while(cin>>n>>m){int temp;vector <int> vector_a;for (int i = 0; i < n+m; i++){cin >> temp;vector_a.push_back(temp);}sort(vector_a.begin(), vector_a.end());cout << vector_a[0];for (int i = 1; i < n+m; i++)if (vector_a[i] != vector_a[i-1])cout << " " << vector_a[i];cout<<endl;}}
常规的看完了,让我们看看“非常规“的:
#include <iostream>
#include <set>using namespace std;int main() {int n, m;while (cin >> n >> m) {set<int> set_a;set<int> set_b;for (int i = 0; i < n; i++) {int element;cin >> element;set_a.insert(element);}for (int i = 0; i < m; i++) {int element;cin >> element;set_b.insert(element);}set<int> union_set;for (const auto& element : set_a) {union_set.insert(element);}for (const auto& element : set_b) {union_set.insert(element);}for (const auto& element : union_set) {cout << element << " ";}cout << endl;}return 0;
}
这是我第一次通过的,可以看到几乎没有用到一点set的用处,多了两个for循环,在逻辑上多占了一倍的空间,多耗费了一倍的时间。当我们学会了STL的时候,不仅可以解决上述问题,更重要的是,繁杂重复的代码会将你的思路打断,让你感觉敲代码像是搬砖,并且代码一多会使代码的可读性大打折扣,这可不好,你总不能说,这段代码真差,结果一查,是你一个月前写的。
相关文章:
给你两个集合,要求{A} + {B}
先看题: 看完题后你会觉得:哇,好简单,STL一下就出来啦。 #include <iostream> #include <set>using namespace std;int main() {int n, m;while (cin >> n >> m) {set<int> set_a;for (int i 0;…...
Java获取实时摄像头进行拍照(附源码)
一、导言 1、引言 Java是一种通用编程语言,可以用来开发各种类型的应用程序,包括涉及图像处理和相机操作的应用程序。 要在Java中获取实时摄像头进行拍照,通常会借助一些第三方库或API,例如OpenCV(Open Source Compute…...
Kafka入门
1. Kafka简介 Apache Kafka 是LinkedIn公司开发的一款开源的高吞吐、分布式的消息队列系统,它具有高伸缩性、高可靠性和低延迟等特点,因此在大型数据处理场景中备受青睐。Kafka 可以处理多种类型的数据,如事件、日志、指标等,广泛…...
异地恋的甜蜜解药:李哥的群晖Videostation电影分享教程
异地恋的甜蜜解药:李哥的群晖Videostation电影分享教程 文章目录 异地恋的甜蜜解药:李哥的群晖Videostation电影分享教程1.使用环境要求2.制作视频分享链接3.制作永久固定视频分享链接 李哥和他的女朋友是一对甜蜜的情侣,但不幸的是ÿ…...
JSON数据获取指南!
在互联网时代,数据是金钱的来源。然而,要从海量的网页中提取需要的数据并不容易。本文将带你了解如何使用Node.js编写简易爬虫程序,帮助你轻松获取并处理JSON数据,让你不再为数据发愁。 一、准备工作 安装Node.js:确保…...
ASCII码-对照表
ASCII 1> ASCII 控制字符2> ASCII 显示字符3> 常用ASCII码3.1> 【CR】\r 回车符3.2> 【LF】\n 换行符3.3> 不同操作系统,文件中换行 1> ASCII 控制字符 2> ASCII 显示字符 ASCII(American Standard Code for Information Interc…...
点餐小程序的制作流程详解
随着移动互联网的发展,越来越多的消费者开始使用手机进行点餐,这也促使了点餐小程序的兴起。如果您是一位商家,想要开发一个属于自己的点餐小程序,那么不妨尝试一下以下的DIY教程吧! 首先,我们需要找一个专…...
Python应用程序:从Android日志到Excel文件的智能过滤和输出
import json import subprocess import re import openpyxldef logcat(excel_path, check_re):"""查看 安卓手机日志信息:param excel_path: excel的路径信息,标题行字段:param check_re: 过滤当前日志的正则表达式(之后记得优化…...
C++常见面试题汇总
C++常见面试题汇总: C++中的指针和引用有什么区别?什么是C++中的多态?如何实现?C++中的析构函数有什么作用?什么是构造函数链?C++中如何进行内存管理?什么是作用域?C++中的作用域限定符有哪些?什么是预处理指令?C++中常见的预处理指令有哪些?什么是头文件?头文件中…...
redis缓存穿透问题
缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库 常见的解决办法: 缓存空对象:第一次请求发现redis和数据库中都不存在时,,可以设置请求数据为key,null为值,放置在缓存中. 但是会有一个问题,就是如果此类请求过多,会导…...
学生宿舍管理系统(前端java+后端Vue)实现-含前端与后端程序
界面介绍 登录 ###宿舍管理 ###菜单管理 ###角色管理 ###班级管理...
codesys【网桥】
作用:在串联的路由器上,实现PC2访问PC1 实现无线编程 和PLC【web】 1硬件连接: 2软件设置: 1网卡设置自动ip 2厂家软件连接到模块...
JS生成随机字符串的多种方法
<script language"javascript"> function randomString(len) {len len || 32;var $chars ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678; /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/var maxPos $chars.length;var pwd ;for (i 0; i &l…...
多维时序 | MATLAB实现GWO-BP多变量时间序列预测(灰狼算法优化BP神经网络)
多维时序 | MATLAB实现GWO-BP多变量时间序列预测(灰狼算法优化BP神经网络) 目录 多维时序 | MATLAB实现GWO-BP多变量时间序列预测(灰狼算法优化BP神经网络)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.MATLAB实现GWO-BP多变量时间序列预测(灰狼算法优化BP神经网络)&…...
PyTorch中的pyi檔案生成機制
PyTorch中的pyi檔案生成機制 前言pyi檔由py生成pyi.in由pyi.in生成pyitorch/CMakeLists.txttools/pyi/gen_pyi.pygen_pyinative_functionsrand.names & rand.names_outrand.generator_with_names & rand.generator_with_names_outrandrand.generatorrand.outran…...
GeoServer运行报错503,……Unmapped relationship: 7
Windows11运行GeoServer-2.19.0报错[org.geoserver.system.status.OSHISystemInfoCollector]……Unmapped relationship: 7 问题说明解决方法 问题说明 最近换了新电脑,在电脑上安装了一个geoserver2.19.0版本,但是运行就是报错,虽然最后提示…...
uniapp ui安装 阿里图标库使用 报错 Assignment to constant variable.
安装 ui uni-app官网 (dcloud.net.cn) (一)安装 pages.js配置 安装 sassnpm i sass -D 或 yarn add sass -D 安装 sass-loader npm i sass-loader10.1.1 -D 或 yarn add sass-loader10.1.1 -D安装 uni-uinpm i dcloudio/uni-ui 或 yarn a…...
Spring IOC容器实例化Bean整体流程图
SpringBean实例化的基本流程-CSDN博客 Spring容器中的BeanDefinitionReader读取器,读取xml配置文件,解析每一个bean标签,将bean标签中信息封装到BeanDefinition对象中,该对象的集合存储到BeanDefinitionMap中,然后Spri…...
【挑战开发100个项目 | 2. C语言图书管理系统】
本项目是一个基于C语言的简单图书管理系统,用户可以通过命令行界面实现图书的添加、删除、修改、查找以及列出所有图书的功能。适用于初学者学习c语言,也适用于高校学生课程设计,毕业设计参考。 一,开发环境需求 操作系统 &#x…...
二刷力扣--二叉树(2)
226.翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 使用递归解决。 确定函数参数和返回值 函数参数为当前节点cur。无返回值。 def dd(cur):确定终止条件。当前节点为空则终止。 if not cur:return 单层逻辑 反转当前…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
软件工程 期末复习
瀑布模型:计划 螺旋模型:风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合:模块内部功能紧密 模块之间依赖程度小 高内聚:指的是一个模块内部的功能应该紧密相关。换句话说,一个模块应当只实现单一的功能…...
密码学基础——SM4算法
博客主页:christine-rr-CSDN博客 专栏主页:密码学 📌 【今日更新】📌 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 编辑…...
