zoukankan      html  css  js  c++  java
  • vector排序

     1 // VectorSort.cpp : Defines the entry point for the console application.
     2 //
     3 
     4 #include "stdafx.h"
     5 #include <iostream>
     6 #include <vector>
     7 #include <algorithm>
     8 
     9 //先自定义一个结构体
    10 struct Test {
    11     int member1;
    12     int member2;
    13 };
    14 
    15 //自定义排序函数
    16 bool SortByM1( const Test &v1, const Test &v2)//注意:本函数的参数的类型一定要与vector中元素的类型一致
    17 {
    18     return v1.member1 < v2.member1;//升序排列
    19 }
    20 
    21 void MyPushback(std::vector<Test> & vecTest, const int &m1, const int &m2)
    22 {
    23     Test test;
    24     test.member1 = m1;
    25     test.member2 = m2;
    26     vecTest.push_back(test);
    27 }
    28 
    29 void PrintVector( std::vector<Test> & vec)
    30 {
    31     /*
    32         插一句,
    33         vec.begin()对应的位置是向量的第一个位置,
    34         vec.end()对应的是vector中的最后的一个元素位置的后面的一个位置(我认为,实际上是一个无效位置)
    35         文档上的定义:Returns an iterator referring to the past-the-end element in the vector container.
    36     */
    37     for(std::vector<Test>::iterator it = vec.begin() ; it != vec.end() ; it++ )
    38     {
    39         std::cout<<it->member1<<'	'<<it->member2<<std::endl;
    40     }
    41 }
    42 
    43 int _tmain(int argc, _TCHAR* argv[])
    44 {
    45     std::vector<Test> vecTest;
    46     MyPushback(vecTest,9,1);
    47     MyPushback(vecTest,8,2);
    48     MyPushback(vecTest,7,3);
    49     MyPushback(vecTest,6,4);
    50     MyPushback(vecTest,5,5);
    51     MyPushback(vecTest,4,6);
    52     MyPushback(vecTest,3,7);
    53     MyPushback(vecTest,2,8);
    54     MyPushback(vecTest,1,9);
    55     //排序之前
    56     std::cout<<"Before Sort:"<<std::endl;
    57     PrintVector(vecTest);
    58 
    59     std::cout<<"对向量中的所有元素按member1进行升序排列:"<<std::endl;
    60     std::sort(vecTest.begin(),vecTest.end(),SortByM1);
    61     PrintVector(vecTest);
    62 
    63     //std::cout<<"对向量中的第2个到第5个元素按member1进行升序排列:"<<std::endl;
    64     //std::sort(vecTest.begin()+1,vecTest.begin()+5,SortByM1);//vecTest.begin()+5为第6个位置
    65     //PrintVector(vecTest);
    66 
    67     return 0;
    68 }
  • 相关阅读:
    tkinter中entry输入控件(四)
    tkinter中button按钮控件(三)
    tkinter中lable标签控件(二)
    tkinter简介(一)
    selenium中的xpath定位
    python实现邮件的发送
    python发送手机动态验证码
    selenium提供的截图功能
    selenium中浏览器及对应的驱动(可下载)
    PHP实现微信提现功能
  • 原文地址:https://www.cnblogs.com/lhwblog/p/6476482.html
Copyright © 2011-2022 走看看