//SetOperations.cpp
#include <algorithm>
#include <vector>
#include "Generators.h"
#include "PrintSequence.h"
using namespace std;
int main()
{
const int SZ = 30;
char v[SZ + 1], v2[SZ + 1];
CharGen g;
generate(v, v + SZ, g);
generate(v2, v2 + SZ, g);
sort(v, v + SZ);
sort(v2, v2 + SZ);
print(v, v + SZ, "v", "");
print(v2, v2 + SZ, "v2", "");
//如果[first2,last2)是[first1,last1)的一个子集,返回true
bool b = includes(v, v + SZ, v + SZ/2, v + SZ);
cout.setf(ios::boolalpha);
cout << "includes: " << b << endl;
char v3[SZ*2 + 1], *end;
//创建两个已排序范围的数学并集,返回值指向输出范围的末尾
//如果在两个输入集合中多次出现某个特定值,
//结果集合中将包含完全相同的值出现的较大次数
end = set_union(v, v + SZ, v2, v2 + SZ, v3);
print(v3, end, "set_union", "");
//创建两个已排序范围的数学交集,返回值指向输出范围的末尾
//如果在两个输入集合中多次出现某个特定值,
//结果集合中将包含完全相同的值出现的较小次数
end = set_intersection(v, v + SZ, v2, v2 + SZ, v3);
print(v3, end, "set_difference", "");
//在result中产数学集合的差,返回值指向输出范围的末尾
//所有出现在[first1,last1)中,但不在[first2,last2)中出现的元素都放入结果集中
//如果在两个输入集合中多次出现某个特定值(在集合1中n次,集合2中m次)
//则结果集中含max(n-m, 0)个副本
end = set_difference(v, v + SZ, v2, v2 + SZ, v3);
print(v3, end, "set_difference", "");
//在result中产数学集合的差,返回值指向输出范围的末尾
//所有在集合1中而不在集合2中,所有在集合2中而不再集合1中的元素都加入结果集中
//如果在两个输入集合中多次出现某个特定值(在集合1中n次,集合2中m次)
//则结果集中含abs(n, m)个副本
end = set_symmetric_difference(v, v + SZ,
v2, v2 + SZ, v3);
print(v3, end, "set_symmetric_difference", "");
system("pause");
return 0;
}
/*
结果:
v: BCGHKNUXYacdefffgghillmpqrsvwx
v2: DEGJOPPPRRRRSVffgknnnqtuvwxxyz
includes: true
set_union: BCDEGHJKNOPPPRRRRSUVXYacdefffgghikllmnnnpqrstuvwxxyz
set_difference: Gffgqvwx
set_difference: BCHKNUXYacdefghillmprs
set_symmetric_difference: BCDEHJKNOPPPRRRRSUVXYacdefghikllmnnnprstuxyz
*/相关推荐
高分辨率航拍图像的目标检测切图优化策略
本文深入探讨了高分辨率航拍图像目标检测中的切图优化策略。针对大尺寸图像直接缩放导致小目标信息丢失的问题,文章详细阐述了基于重叠切割的核心方法,包括如何根据目标尺寸确定切图尺寸与重叠率,并提供了从切图到坐标还原的完整代码实现与避坑指南,有效提升检测精度与效率。
C++编程思想 第2卷 第6章 通用算法 STL算法目录 对已排序的序列进行排序和运算 在已排序的序列上进行集合运算
仅使用字符的vector来演示集合运算更加容易 这些字符是随机产生的 并被排序 当有了副本 可以看到集合运算 还有Generators.h 和 PrintSequence.h没有贴 //: C06:SetOperations.cpp // From "Thinking in C++, Volume 2", by Bruce Eckel & Chuck Allison. // (c) ...
刚入职,软件测试岗,有点迷茫不知道下一步怎么提升自己
软件测试前景和发展都是不错,已经入了软件测试这行业就坚挺下去
每天一个关于STL的知识:集合算法,你学会了吗 ?
本文是集合(set)上的算法,这里的“集合”一词是元素集合的一般含义,而不仅仅是std::set,这篇文章是STL学习资源的一部分,一次一点关于STL的知识。前提:范围已排序。即这篇文章提到的所有算法都要求输入范围是排序的。同样,它们的输出范围(当存在时)也是排序的。
Wezterm的安装和简单配置
希望 wezterm 的主题配色,保持和 powershell 默认配色一致,也就是 Compell 主题。目的是在频繁使用 wezterm 时,原本的根据颜色判断文件信息(尤其是WSL里的Linux下,文件和目录颜色)依然可以使用。wezterm 默认用 cmd.exe, 我是 win11,希望默认用 powershell。
【Vite+Vue3+TS】基于Vite+Vue3+TypeScript+ESLint+Prettier+Stylelint搭建项目(亲测超详细)
结合了很多项目和文章,总结一篇项目构建的笔记。 温馨提示:文章末尾记录了我在搭建项目过程中,遇到的一些问题和解决办法 ~
STL容器内部实现剖析
重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。
SPI为什么不需要加上拉电阻
大家好,我是记得诚。I2C因为其开漏的结构,无法输出高电平,所以外部加上拉电阻。我们在使用SPI的时候,发现是不需要加上拉电阻的。主要因为SPI多为推挽的结构,推挽电路,高低电平都可以输出,所以外部不需要加上拉电阻。推挽电路可以用2个三极管或者2个MOS管搭建而成。
分布式缓存系统实现
重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。
rk3568 rk628桥片 rgb2hdmi
RK628 是瑞芯微全新推出的视频桥接芯片,支持丰富的显示接口,支持高分辨率大屏产品转换需求。基于DRM、FB的显示框架易于使用。 输入信号支持:HDMI、RGB、BT.1120,输出信号支持 HDMI、GVI、Dual LVDS、Dual MIPI、MIPI-CSI、RGB、BT.1120,最高支持4K 60fps 输入/输出转换,并且支持输入到输出 1/4~4倍的缩放。
uni-app - 刘海屏(Iphone X)底部横杠(——)白色区域块(安全距离处更改颜色)解决方案
场景:因为要做无tabbar页面,所以在配置文件中取消底部导航栏。取消后,iPhoneX(刘海屏)底部就出现如下图所示白色安全区域问题:这个问题,是因为uni-app默认会为iPhoneX(刘海屏)留出安全距离,这个安全距离的背景色就是白色。所以,如果你将页面颜色设置为其他颜色,就会与默认白色冲突。有2个不同的解决方案(原生占位),虽然原理是一样,但使用的场景不同,请根据您的需求来采纳。
泛型编程与STL设计思想
重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。
路径跟踪 | 图解纯追踪算法Pure Pursuit(附ROS C++/Python/Matlab仿真)
纯追踪算法(Pure Pursuit)参考了人类驾驶行为,其基本思想是在待跟踪路径上设置预瞄点(goal-ahead),通过简单的几何方法驱动机器人跟踪预瞄点直至抵达目标位置.本文详细推导纯追踪算法的理论原理及其变种——自适应纯追踪算法(APP)和规范化纯追踪算法(RPP),并提供ROS C++/Python/Matlab三种仿真实现加深理解
分布式日志系统实现
重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
霍尼韦尔SoftMaster使用说明
霍尼韦尔SoftMaster使用说明
模板代码安全性增强
重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
单元测试在C++项目中的实践
重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
实时系统日志管理
重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。
实时控制系统验证
重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。
高性能序列化库
重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。
嵌入式C++实时内核
重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。
1113



被折叠的 条评论
为什么被折叠?



