C++ sort函数 参数的用法?

C++ sort函数 参数的用法?,第1张

std::sort,所在头文件<algorithm>

template<typename RandomIt>

void sort(RandomIt first,RandomIt last);

template<typename ExecutionPolicy,typename RandomIt>

void sort(ExecutionPolicy&& policy,RandomIt first,RandomIt last);

template<typename RandomIt,typename Compare>

void sort(RandomIt first,RandomIt last,Compare comp);

template<typename ExecutionPolicy,typename RandomIt,typename Compare>

void sort(ExecutionPolicy&& policy,RandomIt first,RandomIt last,Compare comp);

有上面四种重载,其中第2、4种是C++17新加的。

参数必须是满足“随机访问迭代器”的类型。所以如果a是数组的话,应该可以。

根据你的描述,以struct为元素的vector需要排序,直接在结构体重重载小于号就行了。后续插入到vector中的元素就会以重载的方法升序排列。

struct Item

{

int i;

string str;

bool operator<(const Item &other) const

{

if (i < otheri) // i升序

{

return true;

}

else if (i == otheri)

{

if (strcmp(strc_str(), otherstrc_str()) < 0) //str升序

{

return true;

}

}

return false;

}

};

如上代码可供参考,如果问题解决,请采纳!

#include<stdioh>

void sort(int p,int n);

int main()

{

int i,arr1[6]={3,9,2,8,6,1},arr2[10]={11,5,18,7,2,15,4,13,9,3};

sort(arr1,6);

sort(arr2,10);

printf("排序的结果:\n");

for(i=0;i<6;i++)

printf("%3d",arr1[i]);

printf("\n");

for(i=0;i<10;i++)

printf("%3d",arr2[i]);

}

void sort(int p,int n)

{

int i,j,temp;

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(p[i]>p[j])

{

temp=p[i];

p[i]=p[j];

p[j]=temp;

}

}

#include

using

namespace

std;

sort函数是排序用的,一般用于数组。

int

a[]={0,8,3,5,6,7,81,9,12,1};

sort(&a[0],&a[10]);

数组首地址,和尾地址作为参数。

string

a[5]={"abc","dfe","sd","gf","rg"};

sort(&a[0],&a[5]);

字符串也可以。

c++sort函数的用法如下:

sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。sort函数进行排序的时间复杂度为nlog2n,比冒泡之类的排序算法效率要高,sort函数包含在头文件为#include<algorithm>的c++标准库中。

1970年,AT&T贝尔实验室的工作人员DRitchie和KThompson共同研发了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,实际上C语言是UNIX的“副产品”。1971年,瑞士联邦技术学院NWirth教授发明了第一个结构化的编程语言Pascal。

20世纪70年代中期,本贾尼·斯特劳斯特卢普在剑桥大学计算机中心工作。斯特劳斯特卢普希望开发一个既要编程简单、正确可靠,又要运行高效、可移植的计算机程序设计语言。而以C语言为背景,以Simula思想为基础的语言,正好符合斯特劳斯特卢普的初衷和设想。

1979年,本贾尼·斯特劳斯特卢普到了AT&T贝尔实验室,开始从事将C改良为带类的C(C with classes)的工作。、1983年,该语言被正式命名为C++。1985年、1990年和1994年,C++先后进行3次主要修订。

C++的标准化工作于1989年开始 [21] ,并成立了一个ANSI和ISO(International Standards Organization)国际标准化组织的联合标准化委员会。

sort()是c++、java里对数组的元素进行排序的函数,该函数在c++中包含于algorithm库中。

sort() 方法用于对数组的元素进行排序。包含于头文件algorithm。

sort()说明:

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如果有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,在排序后的数组中 a 应该出现 在 b 之前,则返回一个小于 0 的值。

若 a 等于 b,则返回 0。 (此时不排序)

若 a 大于 b,则返回一个大于 0 的值。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/11669841.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存