为了账号安全,请及时绑定邮箱和手机立即绑定

C++的list容器怎么对里面的条目排序,以及怎么在想要的位置插入条目。

C++的list容器怎么对里面的条目排序,以及怎么在想要的位置插入条目。

C++
火车没有火 2018-06-26 20:45:31
我在list里面放了类的指针,想通过类里面的一个number成员对整个list排序。
查看完整描述

2 回答

?
AAnonymous

TA贡献62条经验 获得超31个赞

#include <bits/stdc++.h>

class Person {
public:
    explicit Person(int n) : number(n) {};
    int getNumber() const { return number; };
private:
    int number;
};

int main() {
    std::list<Person *> personList;

    auto printList = [&]() {
        for (auto& person : personList)
            std::cout << person->getNumber() << ", ";
        std::cout << std::endl;
    };

    personList.emplace_back(new Person(1));
    personList.emplace_back(new Person(5));
    personList.emplace_back(new Person(9));
    personList.emplace_back(new Person(3));
    personList.emplace_back(new Person(7));

    // order -> 1, 5, 9, 3, 7
    printList();

    // sorting
    personList.sort([](const Person* a, const Person* b){
        return a->getNumber() < b->getNumber();
    });
    
    // order -> 1, 3, 5, 7, 9
    printList();

    // release after exit
}


查看完整回答
反对 回复 2018-07-23
?
GG_boy_h

TA贡献5条经验 获得超0个赞

迭代器遍历然后冒泡

查看完整回答
反对 回复 2018-06-30
  • 2 回答
  • 0 关注
  • 2194 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信