首页 > 其他分享 >vector的新初始化方式及sort

vector的新初始化方式及sort

时间:2022-10-27 11:03:37浏览次数:34  
标签:sort 初始化 idx nums int vector iota first

有时候我们需要对数组中的元素进行排序并且得到下标的排序,此时我们可以采用iota函数对vector进行赋值,重载sort函数实现hh

iota函数  C++11 引入,是一个用于产生连续值的函数,包含在#include<numeric>

 

```

vector<int>v(n);

int nums[10];
iota(v.begin(),v.end(),0)

iota(nums,nums+10,100) 

```
模板

```

template <class ForwardIterator, class T>
void iota (ForwardIterator first, ForwardIterator last, T val)
{
while (first!=last) {
*first = val;
++first;
++val;
}
}

```

模板中的T只要支持自增操作就可以 使用

正常的int  float   double 支持自增操作,而char同样支持自增操作 ,如  char c= 'a'    

c++ ;   //c 变成了’b‘ 是ascll 码的增加   

 

 

利用iota 函数 我们可以新开一个数组来存储元素的下标,重载sort函数得到元素排序后的下标

如:

vector<int>nums  //存放了n个数据

vector<int>idx(n);

iota(idx.begin(),idx.end(),0);

sort(idx.begin(),idx.end(),[&](int i,int j){return nums[i]<nums[j] ;});

 

标签:sort,初始化,idx,nums,int,vector,iota,first
From: https://www.cnblogs.com/ycf-blog/p/16831436.html

相关文章

  • map的key是vector容器
    题目描述东东在一本古籍上看到有一种神奇数,如果能够将一个数的数字分成两组,其中一组数字的和等于另一组数字的和,我们就将这个数称为神奇数。例如242就是一个神奇数,我们......
  • mysql学习---简单的数据库初始化脚本和sql分析
    1、创建库、表、权限等DROPDATABASEIFEXISTS`KMS_DB`;CREATEDATABASEIFNOTEXISTS`KMS_DB`CHARACTERSET`utf8`COLLATE`utf8_general_ci`;/*characterset,数......
  • Java开发笔记之Parallels Desktop 初始化网络失败 无法上网
    在使用ParallelsDesktop17的时候,开机提示"初始化网络失败",导致win无法上网;详细请参考此处,本文记录相关操作注意事项。/Library/Preferences/Parallels/dispatcher.de......
  • 03.Go语言环境安装——09.变量的初始化
    3.Go语言环境安装Go的下载Go的下载网址选择合适的版本进行下载安装完成,在cmd目录下,输入“goversion”检查版本Go的环境变量设置右击我的电脑——属性——高级系统......
  • mysql 初始化报错Failed to find valid data directory
    MySQL的错误有时不太准确,比如我在使用命令下面的命令初始化时报错无效数据目录的错误,但其实是一些选项参数的问题。./bin/mysqld--defaults-file=my3307.cnf--datadir=/......
  • Vue 结合Sortablejs实现table行排序
    场景在一个列表展示页面上,使用了表格组件,原有组件本身不支持拖拽功能,需求要求在列表的基础上支持行拖拽排序。因此引入了www.sortablejs.com插件。问题引入Sortablejs后......
  • 京东云开发者| Redis数据结构(二)-List、Hash、Set及Sorted Set的结构实现
    1引言之前介绍了Redis的数据存储及String类型的实现,接下来再来看下List、Hash、Set及SortedSet的数据结构的实现。2ListList类型通常被用作异步消息队列、文章列表查......
  • C++ STL库_vector
    1.vector的初始化方式vectora(10);定义10个整形元素的向量(每个元素的初值为0)vectora(10,1);定义10个整形元素的向量(每个元素的初值为1)vectora(b);用b向量创建a向量,整体......
  • IfcVectorOrDirection
    IfcVectorOrDirection类型定义IfcVectorOrDirection允许在矢量函数的IfcVent和IfcDirection之间进行选择。 注:定义符合ISO/CD10303-42:1992此类型用于标识可以参与......
  • Java初始化
    Java初始化1、采用init:@Autowiredpublicvoidinit(){sysDictFeignClient.dictByCode(GlobalConst.WARN_STAT_PERIOD_TYPE).getData().forEach(v->{statP......