首页 > 编程语言 >【C++】编写一个具有老式风格接口的函数,其原型如下:int reduce(long arr[], int n)。实参应是数组名和数组中的元素个数。该函数对数组进行排序,删除重复的值,返回缩减后数组中

【C++】编写一个具有老式风格接口的函数,其原型如下:int reduce(long arr[], int n)。实参应是数组名和数组中的元素个数。该函数对数组进行排序,删除重复的值,返回缩减后数组中

时间:2024-02-21 17:56:44浏览次数:23  
标签:std arr 函数 int reduce 数组

#include <iostream>
#include <string>
using namespace std;
int reduce(long arr[], int n) {
  sort(arr, arr + n);
  auto str = unique(arr, arr + n);
  return str - arr;
}

int main() {
  long arr[10] = { 15, 8, 5, 6, 11, 11, 6, 6, 198, 50 };
  int newsize = reduce(arr, 10);
  std::ostream_iterator<long, char> out(std::cout, " ");
  std::copy(arr, arr + newsize, out);
  std::cout << std::endl;
  std::cout << "There are " << newsize << " numbers.";

  return 0;
}

标签:std,arr,函数,int,reduce,数组
From: https://www.cnblogs.com/smartlearn/p/18025865

相关文章

  • c++类开发的第三篇(讲明白友元函数和this指针)
    friend_function成员变量和函数的存储c++实现了封装,数据和处理数据的操作(函数)是分开存储的。c++中的非静态数据成员直接内含在类对象中,就像c语言的struct一样。成员函数并不会出现在对象中,而是作为类的一部分存储在代码段中,需要通过对象或对象指针进行调用。成员函数可......
  • 合并两个有序数组
    题目描述:两个按非递减顺序排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。合并 nums2 到 nums1中,使合并后的数组同样按非递减顺序排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况......
  • golang之函数
    目录一、什么是函数二、函数的定义三、函数的返回值1.多个返回值2.命名返回值四、函数的参数1.可变长参数一、什么是函数简单来说就是一个特定的方法,通过这个方法产生预期的结果。函数是一块执行特定任务的代码。一个函数是在输入源基础上,通过执行一系列的算法,生成预期的输......
  • 使用html2Canvas截图网页时,网页存在图片报错:Tainted canvases may not be exported
     这是因为图片跨域产生的报错,看有的说法可以把所有图片进行允许跨域配置,但是比较麻烦。html2canvas有参数可以配置是否允许跨域 参数名称类型默认值描述allowTaintbooleanfalseWhethertoallowcross-originimagestotaintthecanvas---允许跨域background......
  • C++限制函数最大执行时间
    背景C++调用某些硬件操作(如TPU推理)可能存在超时风险,需要限制函数的执行时间。思考异步执行免不了开线程,如何限制join的最大时间是关键。设计如下函数:boolInfer(uinttimeout_ms)根据输入的timeout_ms参数,按时完成返回true超时返回false。实现使用std::mutex配合std::con......
  • redis自学(2)IntSet
    IntSetIntSet是redis中set集合的一种实现方式,基于整数数组来实现,并且具备长度可变、有序等特征。  可能会有疑惑,int8_t的数组contents只有1个字节,怎么可能存的下数组,其实这里的contents存储的只是指向真正数组的指针。IntSet的取值范围大小,实际上是由encoding属性决定的......
  • 数组
    数组1)数组的创建方式:a.静态创建int[]a={1,2,3,4,5};b.静态创建int[]a=newint[]{1,2,3,4,5};c.动态创建int[]a=newint[5];后续可以进行赋值2)一般通过数组的下标操作元素3)数组的长度:数组一旦创建,长度不可改变,长度允许为04)数组的创建过程a.根据数组的类型与长......
  • 全流程点云机器学习(二)使用PaddlePaddle进行PointNet的机器学习训练和评估
    前言这不是高支模项目需要嘛,他们用传统算法切那个横杆竖杆流程复杂耗时很长,所以想能不能用机器学习完成这些工作,所以我就来整这个工作了。基于上文的数据集切分,现在来对切分好的数据来进行正式的训练。本系列文章所用的核心骨干网络代码主要来自点云处理:实现PointNet点云分割......
  • 玩转C语言:深入理解输入输出函数的奥秘
    ​✨✨欢迎大家来到贝蒂大讲堂✨✨......
  • Mybatis输出完整Sql - Interceptor
    @Intercepts({@Signature(type=Executor.class,method="query",args={MappedStatement.class,Object.class,RowBounds.class,ResultHandler.class}),@Signature(type=Executor.c......