C++标准库 vector排序
来源:互联网 发布:证大淘宝达人贷 编辑:程序博客网 时间:2024/06/06 00:45
前天要做一个对C++ STL的vector容器做一个排序操作,之前一直把vector当做一个容量可自动变化的数组,是的,数组,所以打算按照对数组进行排序的方法:用快速排序或是冒泡排序等算法自己写一个排序的函数。后来觉得STL这么强大,应该有它自己的排序方法(没有好好学习啊),然后就去google了一下,果然有,而且可以自定义排序的函数,太强大了(而且效率应该比我自己写的要好吧)。
// VectorSort.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <vector>#include <algorithm>//先自定义一个结构体struct Test { int member1; int member2;};//自定义排序函数bool SortByM1( const Test &v1, const Test &v2)//注意:本函数的参数的类型一定要与vector中元素的类型一致{ return v1.member1 < v2.member1;//升序排列}void MyPushback(std::vector<Test> & vecTest, const int &m1, const int &m2){ Test test; test.member1 = m1; test.member2 = m2; vecTest.push_back(test);}void PrintVector( std::vector<Test> & vec){ /* 插一句, vec.begin()对应的位置是向量的第一个位置, vec.end()对应的是vector中的最后的一个元素位置的后面的一个位置(我认为,实际上是一个无效位置) 文档上的定义:Returns an iterator referring to the past-the-end element in the vector container. */ for(std::vector<Test>::iterator it = vec.begin() ; it != vec.end() ; it++ ) { std::cout<<it->member1<<'\t'<<it->member2<<std::endl; }}int _tmain(int argc, _TCHAR* argv[]){ std::vector<Test> vecTest; MyPushback(vecTest,9,1); MyPushback(vecTest,8,2); MyPushback(vecTest,7,3); MyPushback(vecTest,6,4); MyPushback(vecTest,5,5); MyPushback(vecTest,4,6); MyPushback(vecTest,3,7); MyPushback(vecTest,2,8); MyPushback(vecTest,1,9); //排序之前 std::cout<<"Before Sort:"<<std::endl; PrintVector(vecTest); std::cout<<"对向量中的所有元素按member1进行升序排列:"<<std::endl; std::sort(vecTest.begin(),vecTest.end(),SortByM1); PrintVector(vecTest); //std::cout<<"对向量中的第2个到第5个元素按member1进行升序排列:"<<std::endl; //std::sort(vecTest.begin()+1,vecTest.begin()+5,SortByM1);//vecTest.begin()+5为第6个位置 //PrintVector(vecTest); return 0;}
- C++标准库 vector排序
- C++标准库 vector排序
- C++标准库 vector排序
- C++标准库 vector排序
- C++标准库 vector排序
- C++标准库 vector排序
- C++标准库 vector排序
- C++:标准模板库vector
- C++,标准库类型vector
- C++标准库 std::sort vector排序
- C++Simplify04-标准库string和vector
- C++primer 3.3 标准库类型 vector
- C/C++: c++标准库STL Vector 使用
- C++Primer——标准库vector(容器)类型
- linux & C++Primer 学习笔记--标准库vector类型
- c++primer学习笔记(3.3)标准库vector类型
- C++:标准库类型(string、vector、list、bitset)
- c++primer笔记--3.3标准库类型vector
- sprintf函数的用法
- 线程安全,异常安全,类型安全
- Xrandr 与Xserver 的交互
- 杭电1250
- 李开复评百度移动OS:基于Android 成功难度大
- C++标准库 vector排序
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- IT人员迅速提升自我效率的十大方法
- 一个计算机专业学生几年的Java编程经验汇总
- VC++动态链接库(DLL)编程深入浅出
- exe文件关联修复
- 游船出租
- Java工程师可能不知道的那些FE潜规则
- Spring自动装配模式三:byType的解析