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
如:
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>());//降
但是,如果是自定义的数据类型,那么重载“<”运算符即可,然后里面规定成大于号,就可以降序排序了。
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) ;
}