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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-14
可以用 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>());//降本回答被提问者和网友采纳
第2个回答  2020-06-24
如果vector中的数据类型是int, double这种基本数据类型,那么sort(v.begin(), v.end(), greater<int>()),就可以很好的按照降序排序。
但是,如果是自定义的数据类型,那么重载“<”运算符即可,然后里面规定成大于号,就可以降序排序了。
第3个回答  2012-10-18
哪有降序算法,你自己写吧。需要的话升序完成后逆向输出不就得了
第4个回答  2012-10-18
如下就实现了降序算法:
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) ;
}
相似回答