vector中的升序算法是sort()但降序算法是什么呀?求用法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector中的升序算法是sort()但降序算法是什么呀?求用法?相关的知识,希望对你有一定的参考价值。

一个名为v的vector中,降序排序用法如下:

sort(v.begin(), v.end(),greater<int>());

自定义类型排序:

bool SortByM1( const Test &v1, const Test &v2)//注意:本函数的参数的类型一定要与vector中元素的类型一致  

return v1.member1 < v2.member1;//升序排列

std::sort(vecTest.begin(),vecTest.end(),SortByM1);

迭代器访问

vector<int>::iterator iter=test.begin();//定义一个可以迭代int型vector的迭代器iter,它指向test的首位

for(;iter!=test.end();iter++) cout<<(*iter);//iter++指的是向后迭代一位,直到iter到超出末端迭代器为止,输出迭代器指向的值。

扩展资料

vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和string 对象一样,标准库将负责管理与存储元素相关的内存。

把 vector称为容器,是因为可以包含其他对象,能够存放任意类型的动态数组,增加和压缩数据。一个容器中的所有对象都必须是同一种类型的。

vector 是一个类模板(class template)。使用模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。因此,可以定义保存string对象的 vector,或保存int值的vector,又或是保存自定义的类类型对象(如Sales_items 对象)的 vector。

vector不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。vector 类型的每一种都指定了其保存元素的类型。

参考资料来源:百度百科-vector

参考技术A 可以用 less 和greater方法来配合进行处理,升序和降序。

如:

int a[10]=5,6,7,8,9,0,1,2,3,4;

vector <int> v(a, a+10);

sort(v.begin(), v.end(),less<int>());//升

sort(v.begin(), v.end(),greater<int>());//降本回答被提问者和网友采纳
参考技术B 如果vector中的数据类型是int, double这种基本数据类型,那么sort(v.begin(), v.end(), greater<int>()),就可以很好的按照降序排序。
但是,如果是自定义的数据类型,那么重载“<”运算符即可,然后里面规定成大于号,就可以降序排序了。
参考技术C 哪有降序算法,你自己写吧。需要的话升序完成后逆向输出不就得了 参考技术D 如下就实现了降序算法:
bool Comp(const int &a, const int &b)

return a > b ;

void main()

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

v.push_back(i) ;

sort(v.begin(), v.end(), Comp) ;

以上是关于vector中的升序算法是sort()但降序算法是什么呀?求用法?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 数组排序:内置函数算法排序

PHP 数组排序:内置函数算法排序

算法与数据结构整理-排序

java.util.ComparableTimSort中的sort()方法简单分析

sort算法的原理?

JS数组排序