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

给你两个集合,要求{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}

先看题&#xff1a; 看完题后你会觉得&#xff1a;哇&#xff0c;好简单&#xff0c;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是一种通用编程语言&#xff0c;可以用来开发各种类型的应用程序&#xff0c;包括涉及图像处理和相机操作的应用程序。 要在Java中获取实时摄像头进行拍照&#xff0c;通常会借助一些第三方库或API&#xff0c;例如OpenCV&#xff08;Open Source Compute…...

Kafka入门

1. Kafka简介 Apache Kafka 是LinkedIn公司开发的一款开源的高吞吐、分布式的消息队列系统&#xff0c;它具有高伸缩性、高可靠性和低延迟等特点&#xff0c;因此在大型数据处理场景中备受青睐。Kafka 可以处理多种类型的数据&#xff0c;如事件、日志、指标等&#xff0c;广泛…...

异地恋的甜蜜解药:李哥的群晖Videostation电影分享教程

异地恋的甜蜜解药&#xff1a;李哥的群晖Videostation电影分享教程 文章目录 异地恋的甜蜜解药&#xff1a;李哥的群晖Videostation电影分享教程1.使用环境要求2.制作视频分享链接3.制作永久固定视频分享链接 李哥和他的女朋友是一对甜蜜的情侣&#xff0c;但不幸的是&#xff…...

JSON数据获取指南!

在互联网时代&#xff0c;数据是金钱的来源。然而&#xff0c;要从海量的网页中提取需要的数据并不容易。本文将带你了解如何使用Node.js编写简易爬虫程序&#xff0c;帮助你轻松获取并处理JSON数据&#xff0c;让你不再为数据发愁。 一、准备工作 安装Node.js&#xff1a;确保…...

ASCII码-对照表

ASCII 1> ASCII 控制字符2> ASCII 显示字符3> 常用ASCII码3.1> 【CR】\r 回车符3.2> 【LF】\n 换行符3.3> 不同操作系统&#xff0c;文件中换行 1> ASCII 控制字符 2> ASCII 显示字符 ASCII&#xff08;American Standard Code for Information Interc…...

点餐小程序的制作流程详解

随着移动互联网的发展&#xff0c;越来越多的消费者开始使用手机进行点餐&#xff0c;这也促使了点餐小程序的兴起。如果您是一位商家&#xff0c;想要开发一个属于自己的点餐小程序&#xff0c;那么不妨尝试一下以下的DIY教程吧&#xff01; 首先&#xff0c;我们需要找一个专…...

Python应用程序:从Android日志到Excel文件的智能过滤和输出

import json import subprocess import re import openpyxldef logcat(excel_path, check_re):"""查看 安卓手机日志信息:param excel_path: excel的路径信息&#xff0c;标题行字段:param check_re: 过滤当前日志的正则表达式&#xff08;之后记得优化&#xf…...

C++常见面试题汇总

C++常见面试题汇总: C++中的指针和引用有什么区别?什么是C++中的多态?如何实现?C++中的析构函数有什么作用?什么是构造函数链?C++中如何进行内存管理?什么是作用域?C++中的作用域限定符有哪些?什么是预处理指令?C++中常见的预处理指令有哪些?什么是头文件?头文件中…...

redis缓存穿透问题

缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库 常见的解决办法: 缓存空对象:第一次请求发现redis和数据库中都不存在时,,可以设置请求数据为key,null为值,放置在缓存中. 但是会有一个问题,就是如果此类请求过多,会导…...

学生宿舍管理系统(前端java+后端Vue)实现-含前端与后端程序

界面介绍 登录 ###宿舍管理 ###菜单管理 ###角色管理 ###班级管理...

codesys【网桥】

作用&#xff1a;在串联的路由器上&#xff0c;实现PC2访问PC1 实现无线编程 和PLC【web】 1硬件连接&#xff1a; 2软件设置&#xff1a; 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 &#xff06; 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 问题说明解决方法 问题说明 最近换了新电脑&#xff0c;在电脑上安装了一个geoserver2.19.0版本&#xff0c;但是运行就是报错&#xff0c;虽然最后提示…...

uniapp ui安装 阿里图标库使用 报错 Assignment to constant variable.

安装 ui uni-app官网 (dcloud.net.cn) &#xff08;一&#xff09;安装 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读取器&#xff0c;读取xml配置文件&#xff0c;解析每一个bean标签&#xff0c;将bean标签中信息封装到BeanDefinition对象中&#xff0c;该对象的集合存储到BeanDefinitionMap中&#xff0c;然后Spri…...

【挑战开发100个项目 | 2. C语言图书管理系统】

本项目是一个基于C语言的简单图书管理系统&#xff0c;用户可以通过命令行界面实现图书的添加、删除、修改、查找以及列出所有图书的功能。适用于初学者学习c语言&#xff0c;也适用于高校学生课程设计&#xff0c;毕业设计参考。 一&#xff0c;开发环境需求 操作系统 &#x…...

二刷力扣--二叉树(2)

226.翻转二叉树 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 使用递归解决。 确定函数参数和返回值 函数参数为当前节点cur。无返回值。 def dd(cur):确定终止条件。当前节点为空则终止。 if not cur:return 单层逻辑 反转当前…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...