zoukankan      html  css  js  c++  java
  • 利用STL中的sort对vector中指针元素的排序

    本以为很简单的一个sort,却始终排不出来正确的顺序,让我有些纳闷,后来仔细一想,我只是对指针(地址)进行了排序,并没有对vector中的元素进行排序。

    #include <algorithm>
    #include 
    <iostream>
    #include 
    <vector>

    using namespace std;

    class MyClass
    {
    public:
        MyClass(
    void{}
        
    ~MyClass(void{}

        
    int m_value;
    }
    ;


    bool cmp( const MyClass* p1,const MyClass* p2 )
    {
        
    return (*p1).m_value<(*p).m_value;
    }


    int _tmain(int argc, _TCHAR* argv[])
    {
        vector
    <MyClass*> m_pVector;

        MyClass
    * a = new MyClass;
        a
    ->m_value = 12;
        m_pVector.push_back(a);

        a 
    = new MyClass;
        a
    ->m_value = 25;
        m_pVector.push_back(a);

        a 
    = new MyClass;
        a
    ->m_value = 8;
        m_pVector.push_back(a);

        sort(m_pVector.begin(),m_pVector.end(),cmp);

        
    for (vector<MyClass*>::iterator it = m_pVector.begin(); it != m_pVector.end(); it++
            std::cout 
    << (*it)->m_value << std::endl;

        system(
    "pause");

        
    return 0;

    } 

    上面就是简单的一个demo,对指针容器进行排序。 

  • 相关阅读:
    Visual Studio Code的常用快捷键
    requests模块
    爬虫基本原理
    Django-分页、中间件和请求的声明周期
    Django-admin管理工具
    Django-form表单
    Django-认证系统
    cookie、session和token
    Ajax
    Django进阶Model篇—数据库操作(ORM)
  • 原文地址:https://www.cnblogs.com/madlas/p/2102748.html
Copyright © 2011-2022 走看看