STL 之 set联合容器范例

YOLOv5轻量化实战:从Ghost模块到工业级部署的完整指南 本文详细介绍了YOLOv5轻量化实战,重点解析了Ghost模块在工业检测中的应用及其优化策略。通过Ghost卷积技术,模型参数量和GFLOPs显著降低,同时保持高精度,适用于实时性要求严格的工业场景。文章还提供了从模型优化到TensorRT加速的完整部署指南,助力开发者实现高效工业级应用。 阅读详情

set联合容器范例

      set是多个概念的模型,它是一个联合集合,可反转,可排序,关键字是唯一的,所以它只能存储同一种类型的值。

      set也使用模板参数来提供要存储的值的类型:
      set<string> A;     // a set of string objects

 

      可选的第二个模板参数可以用于指示用来对关键字进行排序的比较函数或对象。默认情况下,将使用less<>模板。
      set<string, less<string> > A;  // older implementation

 

      set有一个将迭代器的区间作为参数的构造函数,这样提供了一种将集合初始化为数组内容的简单方法:
      const int N = 6;
      string s1[N] = {"buffoon","thinkers","for","heavy","can","for"};
      set<string> A(s1, s1 + N);                         // initialize set A using a range form array
      ostream_iterator<string,char> out (cout, " ");
      copy(A.begin(), A.end(), out);

 

      由于set中关键字是唯一的,而上面字符串中"for"在数组中出现了2次,所以会被压缩为一个元素。压缩后的集合还将被排序,输出如下:
      buffoon can for heavy thinkers

 

      数学为集合定义了一些标准操作,例如,并集包含两个集合合并后的内容。如果两个集合中包含相同的值,则这个值将在并集中只出现一次,这是因为关键字是唯一的。交集包含两个集合公有的元素。两个集合的差是第一个集合减去两个集合公有的元素。

 

      STL提供了支持这些操作的算法。它们是通用函数,而不是方法,因此它们不是只能够用于set对象。不过,所有的set对象都自动满足使用这些算法的先决条件,即容器是经过排序的。

 

      set_union()函数接受5个迭代器参数。前两个迭代器定义了一个集合的区间,接下来的两个定义了第二个集合的区间,最后一个迭代器是输出迭代器,指出将结果集合复制到什么位置。


      例如,显示集合A和B的并集:
      set_union(A.begin(), A.end(), B.begin(), B.end(),
             ostream_iterator<string,char> out (cout, " ") );

 

      假设要将结果放到集合C中,则最后一个参数应是一个指向C的迭代器。但不能用C.begin(),原因有二。

      首先,联合集合将关键字看做是常量,所有C.begin()返回的迭代器是一个固定迭代器,不能用作输出迭代器。

      原因二是,与copy()相似,set_union()将覆盖容器中已有的数据,并要求容器有足够的空间来容纳新信息。C是空的,不能满足这种要求。


      insert_iterator模板可以解决这两个问题。它可以将复制转换为插入。另外,它还模拟了输出迭代器概念。
      因此,可以创建一个匿名insert_iterator,将信息复制给C :
      set_union(A.begin(), A.end(), B.begin(), B.end(),
             insert_iterator<ser<string> > (C, C.begin()) );

 

      set_intersection()和set_difference()函数查找交集和获得两个集合的差,它们的接口与set_union()相同。

 

      lower_bound()方法将关键字作为参数并返回一个迭代器,该迭代器指向集合中第一个不小于关键字参数的成员。

 

      upper_bound()方法将关键字作为参数并返回一个迭代器,该迭代器指向集合中第一个大于关键字参数的成员。

 

      例如,如果有一个字符串集合,则可以用这些方法来获得一个区间,该区间包含集合中"b"到"f"的所有字符串。

 

      因为排序决定了插入的位置,所以这种类包含只指定要插入的信息,而不指定位置的插入方法。如果A和B是字符串集合,则可以这样做:
      string s("tennis");
      A.insert(s);                                    //insert a value
      B.insert(A.begin(), A.end() );
         //insert a range

网卡Inter (R) Wi-Fi 6 AX201突然故障 错误代码10,无法找到无线网络,蓝牙也无效了 问题描述 说来也是坑,简直就莫名其妙。早上在工位上,电脑一切正常(一直用的是无线网络),然后周五准备开周会了,所以拔掉电脑外接设备(电源线,鼠标,外接显示器)拿起电脑到会议室。到了会议室之后,无线网断开了(但一般是不会断开的,都在公司范围内),所以选择重连,但发现已经没有无线网络列表了。 电脑机型:联想YOGA 14s 2021 初步尝试 1、关闭开始飞行模式 - 无果 2、重启并重启 (因为前两天已经提醒过有windows更新,趁这个机会就更新并重启了)- 无果 3、下载鲁大师、驱动精灵、联想驱动管 阅读详情

相关推荐

Keil5安装教程(保姆级)Keil5mdk安装步骤

6、复制生成的激活码,粘贴在New License ID Code处,点击Add LIC,即可成功激活mdk,显示mdk的使用期限。6、复制生成的激活码,粘贴在New License ID Code处,点击Add LIC,即可成功激活C51,显示mdk的使用期限;3、在安装文件中点击keygen.exe文件,粘贴复制过的CID,选择Target为C51,点击Generate,生成激活码;4、在弹出的界面中会自动安装在安装keil的路径,点击“Next”进行后续安装,安装完成后,点击“Finish”。

m6886258的博客 9万+

STL中最有用的经验总结(三)

好了,现在给你一个任务。把一系列字符串依次插入到一个set中,然后按照字典序有序的输出。好吧,为了突出重点,我把这些字符串规定为“Anteater”、“Wombat”、“Lemur”、“Penguin”。 你觉得很简单,所以你这样写了。 set ssp; ssp.insert(new string("Anteater")); ssp.insert(new string("Wombat"))

THEONE10211024的专栏 1708

黑客渗透测试后门隐藏技术揭秘

本文介绍了在授权渗透测试中隐藏后门文件(muma.exe)的多种技术手段。主要包括:通过WinRAR自解压脚本将后门与正常程序捆绑实现双开;利用系统自动运行目录和注册表实现开机自启;修改文件图标伪装成常用软件;将文件存放在冷门系统目录;设置系统+隐藏双重属性增强隐蔽性。此外还涉及对抗安全软件的加壳(UPX)、免杀(msfvenom编码)技术,以及进程注入、日志清除等运行隐藏方法。所有技术仅限合法授权测试使用,未经授权使用将面临法律责任。

m0_60781580的博客 1040

Essential C++学习(三)泛型编程风格——代码练习

练习 3.1 void ask_usr(constmap<string, int> &words, ostream &os)不对,在调用count = words[usr_ask];时报错,显示[]没有匹配运算符。 #include<iostream> #include<string> #include<vector> #in...

Amanda1m的博客 319

保姆级教程:用Adams/Car和Simulink搞定你的第一个整车联合仿真(附模型文件)

本文提供了一份详尽的Adams/Car与Simulink联合仿真教程,涵盖从环境配置到模型导出的全流程。通过实战案例解析,帮助工程师快速掌握多体动力学仿真与控制算法开发的集成技术,特别适合汽车工程领域的初学者。文章还包含常见问题解决方案和性能优化建议,助您高效完成整车联合仿真项目。

weixin_29663861的博客 337

elegant(ELEctron Generation ANd Tracking)入门指南(1)

elegant (ELEctron Generation ANd Tracking),美国先进光子源(APS)所用的圆环加速器的模拟程。

qq_41106132的博客 1845

C++ string 用法详解(转)

C++ string 详解 任何人对本文进行引用都要标明作者是Nicolai M.Josuttis /////////////////////////////////////////////////////////////////////////////////// C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C...

weixin_30500663的博客 733

SoapUI 5.0 模拟WebService接口实战:从WSDL文件到Mock服务端完整流程

本文详细介绍了如何使用SoapUI 5.0模拟WebService接口,从解析WSDL文件到搭建完整的Mock服务端流程。通过实战案例和效率技巧,帮助开发者快速掌握接口模拟技术,提升开发与测试效率。

weixin_26833139的博客 405

C++ STL 之集合 set 详解

C++ STL 之 集合 set 关联式容器详解

一些笔记 796

LPDDR5 学习笔记02:上电初始化与下电时序

LPDDR5上电初始化流程需严格遵守时序要求:首先确保电源按顺序上电(VDD1→VDD2H→VDD2L→VDDQ),RESET_n保持低电平至电压稳定。初始化包含自动ZQ校准、命令总线训练(CBT)、WCK2CK电平校准和DQ总线训练四个关键阶段,需完成全部训练后才能正常操作。在双电源轨系统中,须在CBT前设置MR13寄存器。复位操作需保持RESET_n低电平至少tPW_RESET时间,断电时要求CS保持低电平且电源电压有序下降。非受控下电时电压斜率需低于0.5V/μs,器件生命周期内不得超过400次非受控

一只豌豆象的博客 2040

使用R语言绘制Logistic回归模型的亚组分析森林图

亚组分析是一种常用的统计方法,用于探索不同亚组之间的差异,并确定是否存在某些变量对结果的调节作用。在本文中,我们将使用R语言来绘制Logistic回归模型的亚组分析森林图。在该图中,每个亚组都用一个点表示,点的位置表示亚组的均值,而线段表示亚组的置信区间。垂直参考线用于表示效应值为0的点,帮助我们判断亚组之间的差异。希望本文对你有所帮助,让你能够使用R语言绘制Logistic回归模型的亚组分析森林图。是一个二分类的变量,我们希望在亚组分析中探索它与响应变量之间的关系。函数来计算每个亚组的均值,并使用。

PixelNinja的博客 2002

STL 容器类型

1. STL有6种序列容器类型  1 vector     向量 相当于一个数组     在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一块内存存储,这给人以vector可以不指定vector即一个连续内存的大小的感觉。通常此

和大黄的博客 1万+

五十天精通硬件设计第6天-放大器知识及选型

运算放大器(Operational Amplifier,简称运放)是一种高增益的直流耦合差分放大器,广泛应用于信号处理、滤波、比较、积分、微分等电路中。

whm128的博客 592

c++ STL 容器——联合容器

STL提供了四种联合容器 set,multiset,map,multimap; set and multiset在头文件 map and multimap在头文件   模板函数都一样的http://www.cnblogs.com/jinmingyi/p/6798359.html set/map中迭代器不能++或--,因为不是连续的序列,是树。 set: 在set中,值就是关键字,集合中不会有多个相

Jimmy_King 413

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C++联合容器set和map

1. 联合容器 联合容器将值与关键字关联在一起,使用关键字来查找值。联合容器的长处在于,它提供了对元素的快速访问。与序列相似,联合容器也允许插入新元素,不过不能指定元素的插入位置。原来是联合容器通常包含用于确定数据放置位置的算法,以便能够很快检索信息。 STL提供4种容器:set,multiset,map,multimap。一般地当我们只想知道一个值是否存在时,set 最有用处;希望存储也可能

LinEvan 958

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

(二十八)STL set容器(集合)

总之来说不管是C/C++还是python,foreach都是一个良心玩意,直接把复杂的for循环简化了。第一行表示它的类型(一般用class类型表示这个主类的类型,也可以把。对了,set容器默认从小到大,怎么变为从大到小呢?在C++中基于容器迭代器的遍历给出了一种新的。一样的,他的迭代器类型是这个。)还是静态数组它们都有这个语法。,说明这个就是从小到大的排序器。),但一般排序用的函数统一类型。),还是老老实实的用迭代器(第二行表示它的排序器,默认为。这是set容器定义时的模版。我们可以发现比较器类型是。

2401_85898378的博客 2061

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C++ -- 联合容器

在 C++ 语境中,“联合容器”这一术语通常存在两种截然不同的含义,需要根据具体场景进行区分:‌STL 关联容器(Associative Containers)‌:这是最常见的情况,指代标准模板库(STL)中基于键值对或唯一键进行快速查找的容器,如 std::map、std::set 等。在某些旧式教材或翻译中,这类通过关键字(Key)关联值(Value)的容器被称为“联合容器”。

dongyanxia1000的专栏 434

STL容器分类

http://www.360doc.com/content/12/0705/08/6828497_222338600.shtml 容器(container)是装有其他对象的对象。容器里面的对象必须是同一类型,该类型必须是可拷贝构造和可赋值的,包括内置的基本数据类型和带有公用拷贝构造函数和赋值操作符的类。典型的容器有队列、链表和向量等。 在标准C++中,容器一般用模版类来表示。不过STL不是面向

muzi20102010的专栏 1169

STL容器的基本特性和特征

1. STL有6种序列容器类型 (1)vector 它提供对元素的随即访问,在尾部添加和删除元素的时间是固定的,在头部或中部插入和删除元素的复杂度为线性时间。 (2)deque 在文件中声明。 是双端队列,支持随即访问。从deque的开始与末尾位置插入和删除元素的时间是固定的。 尽管vector和deque都提供对元素的随机访问和在序列中部执行线性时间的插入和删除操作,但vector容器执行这些操

脑袋不好使 651

C++容器种类

容器类型可用于创建具体对象的模板 11个容器类型分别为:deque / list / queue / priority_queue / stack / vector / map / multimap / set / mulitset / bitset 容器概念:指定了所有STL容器类都必须满足的一系列要求 容器:存储其他对象的对象 要求:1>被存储的对象必须是同一种数据类型(可以使

Java技术博文 1532

C++ STL中各容器内存、优劣的分析

STL有三大核心部分:容器(Container)、算法(Algorithms)、迭代器(Iterator)。以下介绍容器相关内容: 各种容器的元素在内存中的储存方式 1、vector(向量):相当于数组,但其大小可以不预先指定,并且自动扩展。它可以像数组一样被操作, 由于它的特性我们完全可以将vector 看作动态数组。在创建一个vector 后,它会自动在内存中分配一块连续的 内存空间进...

SmallBottle-CGWLMX的博客 1875

STL复习-序列式容器和容器适配器部分

STL复习

bananawolf的博客 3477

STL 之 容器

容器概念、容器算法操作时间、6中序列容器介绍、4种联合容器简介

孤云出岫, 去留一无所系. 朗镜悬空,静躁两不相干. 1020
上一篇: STL 之 容器
下一篇: STL 之 multimap联合容器范例
TypeCool
博客等级 码龄22年 58粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值