我再一次发现自己在C中完成了一些非常简单的任务.有时候我希望我可以在

java中从OO中学习我所知道的所有内容,因为我的问题通常都是从

Java开始思考.

无论如何,我有一个std :: list< BaSEObject *>我想排序.假设BaSEObject是:

class BaSEObject {

protected:

int id;

public:

BaSEObject(int i) : id(i) {};

virtual ~BaSEObject() {};

};

我可以使用比较器结构对指向BaSEObject的指针列表进行排序:

struct Comparator {

bool operator()(const BaSEObject* o1,const BaSEObject* o2) const {

return o1->id < o2->id;

}

};

它看起来像这样:

std::list mylist;

mylist.push_back(new BaSEObject(1));

mylist.push_back(new BaSEObject(2));

// ...

mylist.sort(Comparator());

// intentionally omitted deletes and exception handling

直到这里,一切都很好.但是,我介绍了一些派生类:

class Child : public BaSEObject {

protected:

int var;

public:

Child(int id1,int n) : BaSEObject(id1),var(n) {};

virtual ~Child() {};

};

class GrandChild : public Child {

public:

GrandChild(int id1,int n) : Child(id1,n) {};

virtual ~GrandChild() {};

};

所以现在我想按照以下规则排序:

>对于任何Child对象c和BaSEObject b,b< c

>要比较BaSEObject对象,请像以前一样使用其ID.

>要比较Child对象,请比较其变量.如果它们相等,则回退到规则2.

> GrandChild对象应该回退到Child行为(规则3).

我最初认为我可能会在比较器中做一些演员.但是,这会消除常数.然后我想可能我可以比较类型,但后来一切看起来都很乱,甚至都不正确.

我怎么能实现这种排序,仍然使用list< BaSEObject *> :: sort?

谢谢

c语言 指针 排序,c – 对指针列表进行排序相关推荐

  1. python字符串排序_Python对字符串列表进行排序

    在本教程中,我们将看到如何对字符串列表进行排序.我们将使用sort方法和sorted函数对给定的字符串列表进行排序.然后,我们将了解如何根据不同的条件(例如长度,值等)对字符串列表进行排序, 让我们看 ...

  2. python编写列表排序函数_python序列列表怎么排序?

    Python序列中的列表怎么排序? 1.sort方法排序原址排序list.sort(key=None,reverse=False(or True)) 当reverse=False时:为正向排序: 当r ...

  3. Dart对列表进行排序

    我的公众号 在 Dart 编程中,List 数据类型类似于其他编程语言中的数组.列表用于表示对象的集合.它是一组有序的对象.Dart 中的核心库负责 List 类的存在.创建和操作.列表的排序取决于我 ...

  4. 【C 语言】二级指针作为输入 ( 自定义二级指针内存 | 二级指针排序 | 通过 交换指针指向的内存数据 方式进行排序 )

    文章目录 一.二维指针 排序 ( 通过 交换指针指向的内存数据 方式进行排序 ) 二.完整代码示例 一.二维指针 排序 ( 通过 交换指针指向的内存数据 方式进行排序 ) 在上一篇博客 [C 语言]二 ...

  5. 【C 语言】二级指针作为输入 ( 自定义二级指针内存 | 二级指针 排序 | 通过 交换指针方式 进行排序 )

    文章目录 一.二维指针 排序 ( 通过 交换指针方式 进行排序 ) 二.完整代码示例 一.二维指针 排序 ( 通过 交换指针方式 进行排序 ) 在上一篇博客 [C 语言]二级指针作为输入 ( 二维指针 ...

  6. 【嵌入式开发】C语言 命令行参数 函数指针 gdb调试

    . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21551397 | http://www.hanshul ...

  7. C程序设计语言现代方法17:指针的高级应用

    目录 1. 动态存储分配 1.1 malloc函数 1.2 calloc函数 1.3 realloc函数 1.4 free函数 2. 空指针NULL解析 2.1 NULL的定义形式 2.2 程序如何知 ...

  8. 关于C语言中的数组指针、指针数组以及二级指针

    概念解释 数组指针:首先它是一个指针,它指向一个数组,即指向数组的指针:在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.数组指针指向的是数组中的一个具体元素,而不是整个数组,所 ...

  9. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

最新文章

  1. AI产品经理需了解的技术知识:语音识别技术(2)
  2. 盘点 10 个代码重构的小技巧
  3. 如何让电脑成为看图说话的高手?计算机视觉顶会ICCV论文解读
  4. phpst安装memcache扩展_在 Ubuntu/Debian 下安装 PHP7.3 教程
  5. mongodb atlas_如何使用MongoDB Atlas将MERN应用程序部署到Heroku
  6. Json.Net Demo2
  7. 计算机系统的组成doc,简述计算机系统的组成.doc
  8. IronPython 小试牛角
  9. 【转】PLI是什么以及怎么用
  10. bbs与BLOG与SNS在区别
  11. iqooneo系统要不要更新_手机系统要不要升级?别纠结,1分钟看完你就知道
  12. 关于pdf转html的个人方法,pdf转html的另类方法
  13. ipad一直卡在白苹果_近万字多图带你玩转iPad——iPad指南
  14. Ansys 错误记录
  15. 一个博客到底有多重要
  16. 华硕路由器官改/梅林 设置外置USB-JFFS解救NAND
  17. 【Shotcut】开源免费视频编辑软件 - 微信视频编辑利器
  18. 433lora手持机|手持数据采集终端|lora模块手持PDA
  19. 这篇文章告诉你图片转语音免费软件有哪些?
  20. PHP公众号群发用户过多,公众号四次群发用完怎么办?

热门文章

  1. 腾讯云联合信通院等发布标准物模型平台,构建物联网行业通用标准
  2. 程序员过关斩将——搞定秒杀,只需要这几步!!
  3. 苹果调整App Store政策;国内首个5G+8K超高清国产化白皮书发布;Windows计算器移植到到 Linux|极客头条
  4. 不用鼠标,程序员编程竟能如此高效?
  5. 微信公众号关闭iOS端虚拟支付业务;苹果「Apple 登录」存安全漏洞;谷歌推迟发布Android 11 Beta| 极客头条...
  6. 50 岁程序员创业说:两个月提交 50 个 PR,三个月内融资 2000 万美元
  7. 程序员撕开京东 618 大促压测的另一面 | 原力计划
  8. 遇到这 4 个迹象,赶紧下来、让人工智能上!
  9. Java 开发者最困惑的四件事
  10. 作为曾经的 Web 开发“王者”,jQuery 的传奇怎么续写?