zoukankan      html  css  js  c++  java
  • 设计模式 C++迭代器模式

    // sejimoshi.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    
    #include <iostream>
    #include <list>
    #include<algorithm>
    using namespace std;
    
    class Student
    {
    private:
        string name;
        long id;
        int age;
    public:
        string getName() {
            return name;
        }
        long getId() {
            return id;
        }
        int getAge() {
            return age;
        }
        void setName(string name) {
            this->name = name;
        }
        void setAge(int age) {
            this->age = age;
        }
        void setId(long id) {
            this->id = id;
        }
        Student(string name, long id, int age) {
            this->name = name;
            this->id = id;
            this->age = age;
        }
    };
    
    
    //比较函数:根据结构体里面的整型number排序
    bool sortStuInt(Student m1, Student m2)
    {
        return m1.getId() < m2.getId();
    }
    //比较函数:根据结构体里面的字符串name排序
    bool comStuString(Student m1, Student m2)
    {
        if (m1.getId() > m2.getId())
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    
    int main()
    {
        std::cout << "Hello World!\n";
        list<Student> list_student;
        list_student.push_back(Student("lisi", 20194001, 20));
        list_student.push_back(Student("wangwu", 20194002, 21));
        list_student.push_back(Student("zhaosi", 20194003, 22));
        list_student.push_back(Student("xiaoming", 20194005, 20));
        list_student.push_back(Student("xiaohong", 20194004, 22));
        list_student.push_back(Student("xiaohuang", 20194010, 20));
        list_student.push_back(Student("xiaolan", 20194008, 20));
        cout << "迭代器正序遍历\n";
        list_student.sort(sortStuInt);
        //使用begin()/end()迭代器函数对输出list容器中的元素
        for (std::list<Student>::iterator it = list_student.begin(); it != list_student.end(); ++it) {
            std::cout << (*it).getId()<<endl;
        }
        cout << "迭代器倒序遍历\n";
        list_student.sort(comStuString);
        //使用begin()/end()迭代器函数对输出list容器中的元素
        for (std::list<Student>::iterator it = list_student.begin(); it != list_student.end(); ++it) {
            std::cout << (*it).getId() << endl;
        }
    }
    
    bool cmp_1(Student x, Student y) {
        return x.getId() > y.getId();
    }
    bool cmp_2(Student x, Student y) {
        return x.getId() < y.getId();
    }
  • 相关阅读:
    JavaScript实现类的private、protected、public、static以及继承
    OSS网页上传和断点续传(STSToken篇)
    OSS网页上传和断点续传(OSS配置篇)
    Linq sum()时遇到NULL
    SQLSERVER事务日志已满 the transaction log for database 'xx' is full
    笔记本高分辨软件兼容问题,字体太小或模糊
    H5上传图片之canvas
    An error occurred while updating the entries. See the inner exception for details.
    无限级结构SQL查询所有的下级和所有的上级
    SQLserver 进程被死锁问题解决
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15559632.html
Copyright © 2011-2022 走看看