c++容器中存放自己定义的类,用unique和sort函数怎样实现通过按照类成员对vector进行去重和排序
1个回答
推荐于2016-05-24 · 知道合伙人互联网行家
关注
展开全部
sort接受的是参数是指针或迭代器,sort(a[0],a[n]);你这里只是2个元素。
可以自写比较函数,也可以用标准定义好的函数对象:
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
bool sort_desc(int a, int b)
{
return a > b;
}
bool sort_asc(int a, int b)
{
return a < b;
}
void p(int* begin, int* end)
{
while(begin < end)
cout << *begin++ << ' ';
cout << endl;
}
int main()
{
int a[] = {6,9,1,3,5,2,7,0,4,8};
sort(a, a + 10, sort_desc);
p(a, a + 10);
sort(a, a + 10, sort_asc);
p(a, a + 10);
sort(a, a + 10, greater<int>());
p(a, a + 10);
sort(a, a + 10, less<int>());
p(a, a + 10);
}
可以自写比较函数,也可以用标准定义好的函数对象:
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
bool sort_desc(int a, int b)
{
return a > b;
}
bool sort_asc(int a, int b)
{
return a < b;
}
void p(int* begin, int* end)
{
while(begin < end)
cout << *begin++ << ' ';
cout << endl;
}
int main()
{
int a[] = {6,9,1,3,5,2,7,0,4,8};
sort(a, a + 10, sort_desc);
p(a, a + 10);
sort(a, a + 10, sort_asc);
p(a, a + 10);
sort(a, a + 10, greater<int>());
p(a, a + 10);
sort(a, a + 10, less<int>());
p(a, a + 10);
}
追问
谢谢 sort按你的方法实现了 unqiue去重函数能不能也给一个例子
追答
这个现在没有例子。以后开发中用到再发给你吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询