C++中unique函数

2023-10-29

C++中unique函数

文章一:
unique是STL中很实用的函数之一,需要#include(感谢各位提醒),下面来简单介绍一下它的作用。

unique的作用是“去掉”容器中相邻元素的重复元素,这里去掉要加一个引号,为什么呢,是因为它实质上是一个伪去除,它会把重复的元素添加到容器末尾,而返回值是去重之后的尾地址(是地址!!),举个例子:

int num[10]={1,1,2,2,2,3,4,5,5,5};
int ans=unique(num,num+10)-num;  //去重函数返回地址为:去重后最后一个不重复元素地址

这时,返回的ans是5,而num中前5项就是1,2,3,4,5,一般使用前需要对容器进行排序,这样才能实现对整个数组去重。

另:如果要对结构体进行这一操作,需要重载运算符"==",具体要根据自己需要重载。

原文链接:https://blog.csdn.net/u014598631/article/details/34884809

c++ unique函数详解

文章二:
unique是 c++标准模板库STL中十分实用的函数之一,使用此函数需要#include 头文件

该函数的作用是“去除”容器或者数组中相邻元素的重复出现的元素
(1) 这里的去除并非真正意义的erase,而是将重复的元素放到容器的末尾,返回值是去重之后的尾地址。
(2) unique针对的是相邻元素,所以对于顺序顺序错乱的数组成员,或者容器成员,需要先进行排序,可以调用std::sort()函数

使用示例:

#include <iostream>
#include <algorithm>
int main(void){
    int a[8] = {2, 2, 2, 4, 4, 6, 7, 8};
    int c;
    std::sort(a, a + 8);  //对于无序的数组需要先排序
    c = (std::unique(a, a + 8) - a );
    std::cout<< "c = " << c << std::endl;//去重函数返回地址为:去重后最后一个不重复元素地址
    //打印去重后的数组成员
    for (int i = 0; i < c; i++)
        std::cout<< "a = [" << i << "] = " << a[i] << std::endl;
    return 0;
}

运行结果:

返回值c等于5,而a数组的前5项为2、4、6、7、8

对于容器的操作类似:

std::vector<int> ModuleArr;
//排序
std::sort(ModuleArr.begin(), ModuleArr.end());
//去重
ModuleArr.erase(unique(ModuleArr.begin(), ModuleArr.end()), ModuleArr.end());

https://blog.csdn.net/qq_36561697/article/details/82356053

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++中unique函数 的相关文章

  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 重载<<的返回值

    include
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK

随机推荐

  • kettle ORA-00942: 表或视图不存在(2022/01/15)

    问题描述 kettle对接客户的oracle数据库 一开始给我的账号少赋了一张表的权限 这张表是之后赋给我的 对接中发现 在kettle预览有这张表的sql的时候 就会报上述错误 但是在navicat里面跑sql是成功的 解决方案 用模式
  • FMC141-4路 250Msps/16bits ADC, FMC板卡

    FMC141 4路 250Msps 16bits ADC FMC板卡 一 产品概述 本板卡基于 FMC 标准板卡 实现 4 路 16 bit 250Msps ADC 功能 遵循 VITA 57 标准 板卡可以直接与VME VXS AMC V
  • 数据中台元年,企业数字化转型面临的三大挑战

    随着企业信息化程度越来越高 企业掌握的数据量从原来的TB级发展到PB级 再到EB级甚至往ZB级别发展 数据形式也在从原来的结构化数据为主转变为以日志 视频 图片 语音等非结构化数据为主 然而 数据存储和计算 数据组织的运行都是有成本的 当数
  • python计算GPA,附带详细讲解

    这里采用标准计算公式 S 学科分数 P 学科绩点 n 学科数目 下面举个例子 比如 数学 90 绩点4 语文 80 绩点3 英语 70 绩点2 GPA 90 4 80 3 80 2 4 4 3 2 100 3 29 相关代码如下 score
  • adb常用命令

    查看当前连接设备 adb devices如果发现多个设备 adb s 设备号 其他指令 举例 adb s devicel install xxx apk 查看顶部Activity windows环境下 adb shell dumpsys a
  • SIGSEGV与SIGBUS

    http www cnblogs com whyandinside archive 2013 01 07 2848806 html SIGSEGV与SIGBUS SIGBUS Bus error 意味着指针所对应的地址是有效地址 但总线不能
  • CMakeLists.txt 的阅读

    前言 CMake允许开发者编写一种平台无关的 CMakeList txt 文件来定制整个编译流程 然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件 如 Unix 的 Makefile 或 Windows 的 Vi
  • 【Proteus仿真】【51单片机】蔬菜大棚温湿度控制系统设计

    文章目录 一 主要功能 二 使用步骤 三 硬件资源 四 软件设计 1 主要代码 五 实验现象 联系作者 一 主要功能 1 温湿度上下限阈值设定 2 超限声光报警加热 加湿 3 温湿度显示 二 使用步骤 系统运行后 LCD1602显示当前温湿
  • Nacos快速入门(三):Spring Cloud Alibaba Nacos实现服务注册与发现

    1 前言 Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案 目前已经加入Spring Cloud项目 跟随Spring Cloud一起维护 集成Nacos需要使用Spring Cloud Alibaba N
  • JS parseInt() 、parseFloat()、Number()

    介绍 parseInt string radix parseFloat string Number object 举例 总结 parseInt string radix parseFloat string Number object 介绍
  • c语言中宏定义的关键字,C语言中,宏定义“define”的一种有趣的用法

    在C语言中 宏定义也是一种很重要的概念 可以使用 define 来定义一个常量 也可以用 define 来实现一些功能 这一篇文章中 我们将介绍一下 在C语言中 使用宏定义 define 实现的一个小的例子 我们可以借助 define 将很
  • 汇编:按给定格式在屏幕中间显示字符串

    代码如下 assume cs code ds data ss stac data segment db welcome to masm db 02h 24h 71h data ends stac segment dw 0 0 0 0 0 0
  • Lion:闭源大语言模型的对抗蒸馏

    Lion 闭源大语言模型的对抗蒸馏 Lion 由香港科技大学提出的针对闭源大语言模型的对抗蒸馏框架 成功将 ChatGPT 的知识转移到了参数量 7B的 LLaMA 模型 命名为 Lion 在只有 70k训练数据的情况下 实现了近 95 的
  • 两台服务器文件镜像,两台云服务器镜像

    两台云服务器镜像 内容精选 换一换 请您在购买前确保已完成注册和充值 详细操作请参见如何注册公有云管理控制台的用户 登录管理控制台 单击管理控制台左上角的 选择区域和项目 选择 计算 gt 弹性云服务器 单击 购买弹性云服务器 系统进入购买
  • 删除单链表中的指定节点

    题目1 编写在带头结点的单链表L中删除一个最小值结点的高效算法 假设最小值结点是唯一的 时间复杂度为O n 空间复杂度为O 1 问题解答 算法思想 用p从头至尾扫描单链表 pre指向 p结点的前驱 用minp保存值最小的结点指针 初值为p
  • 那些方法可以绕过服务器对文件内容的检测,文件上传漏洞

    文件上传 文件上传就是在一些web应用中允许用户上传图片 文本等相应文件到服务器指定的位置 而文件上传漏洞就是利用这些可以上传的地方将恶意代码植入到服务器中 之后通过url去访问以执行代码达到攻击的目的 可以成功攻击的条件 1 存放上传文件
  • Linux网络编程:IO多路复用——epoll

    服务器端代码 epoll event poll include
  • mysql sqlite 语法_浅谈sqlite与mysql的数据库语法差异_沃航科技

    由于一些原因 小沃将自己的官方网站从原来的阿里云迁移到了justg的vps上 服务器配置也从原理的1核1G变为了1核512M 虽然服务器性能所有下降 但是毕竟小沃的官网是使用了百度的cdn的 因此应付高并发还是没有什么问题的 考虑到服务器性
  • Go框架之Gin应用到原理源码

    Go框架之Gin应用到原理源码 基本概览 目前 golang使用最广泛的Web 微框架之一 具有高性能的优点 基于 httprouter 它提供了类似martini但更好性能 路由性能约快40倍 的API服务 本文将从基本应用快速上手到中间
  • C++中unique函数

    C 中unique函数 文章一 unique是STL中很实用的函数之一 需要 include 感谢各位提醒 下面来简单介绍一下它的作用 unique的作用是 去掉 容器中相邻元素的重复元素 这里去掉要加一个引号 为什么呢 是因为它实质上是一