aa953950670 2016-05-24 16:01 采纳率: 0%
浏览 1747

C++ STL中的sort排序算法

#define _CRT_SECURE_NO_WARNINGS
#include"iostream"
using namespace std;
#include"vector"
#include"list"
#include"set"
#include"algorithm"
#include"functional"
class teacher
{
public:
int age;
char *name;
public:
teacher()
{
this->name = new char[1];
strcpy(this->name, 0);
this->age = 0;
}
teacher(char *name,int age)
{
this->name = new char[strlen(name) + 1];
this->age = age;
strcpy(this->name, name);
}
teacher(const teacher&obj)
{
this->name = new char[strlen(obj.name) + 1];
this->age =obj.age;
strcpy(this->name, obj.name);
}

~teacher()
{
    if (this->age != NULL)
    {
        delete[]this->name;
    }
    this->age = 0;
    this->name = NULL;
}
teacher* operator = (teacher&obj)
{
    teacher* p;
    p = &obj;
    return p;
}
bool operator<(const teacher  obj5)
{
    return this->age < obj5.age;
}

};

bool chang(teacher obj1, teacher obj2)
{

cout << obj1.name << endl;
if (obj1.age < obj2.age)
{
return true;
}
else
{
return false;
}
}

void main02()
{
teacher ouyangdian("ouyangdian", 18);
teacher wuhui("wuhui",25);
teacher wudong("wudong", 19);
teacher zhuwenjun("zhuwenjun", 17);
vector array;
array.push_back(ouyangdian);
array.push_back(wuhui);
array.push_back(wudong);
array.push_back(zhuwenjun);
vector::iterator it = array.begin();
sort(it, array.end(),chang);
vector::iterator it1 = array.begin();
for (it1; it1 != array.end(); it1++)
{
cout << it1->name << " " << it1->age << endl;
}
}

void main()
{
//main03();
main02();
system("pause");
return;
}

请各位大神看看这段代码,为何不能实现排序呢。。跪求

  • 写回答

5条回答 默认 最新

  • Robot-C 2016-05-24 16:12
    关注

    C++之所以得到这么多人的喜欢,是因为它既具有面向对象的概念,又保持了C语言高效的特点。STL 排序算法同样需要保持高效。因此,对于不同的需求,STL提供的不同的函数,不同的函数,实现的算法又不尽相同。
    1.1 所有sort算法介绍
    所有的sort算法的参数都需要输入一个范围,[begin, end)。这里使用的迭代器(iterator)都需是随机迭代器(RadomAcce......
    答案就在这里:STL sort排序算法详细介绍
    ----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误