精华内容
下载资源
问答
  • 关于C++ vector容器排序问题

    千次阅读 2018-05-26 21:29:18
    C++ vector排序参考 https://blog.csdn.net/upc_xbt/article/details/53305962注意:#include<iostream> #include<vector> #include<algorithm> using namespace std; ...
    C++ vector排序

    参考 https://blog.csdn.net/upc_xbt/article/details/53305962

    注意:

    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    int main()
    {
        int num=0;
        cin>>num;
        string str;
        vector<string> word;
        while(cin>>str)
        {
            word.push_back(str);
        }
        sort(word.begin(),word.end());
        for(auto iter=word.cbegin();iter!=word.cend();iter++)
        {
            cout<<*iter<<endl;
        }
    }

    sort函数不能用cbegin(),即如下是错误的:

      sort(word.cbegin(),word.cend());

    展开全文
  • 从小到大排序比较简单,使用sort()函数既可,sort的头文件是#include<algorithm> 从小到大 #include <iostream> #include <vector> #include <algorithm> using namespace std; int ...

    从小到大排序比较简单,使用sort()函数既可,sort的头文件是#include<algorithm>

    从小到大

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    int main() {
    	int a[] = {8,6,2,9,3,5,4,1,7,10};
     	vector<int> arr(a, a+5);
    	sort(arr.begin(),arr.end()); 
     	for(int i = 0; i <arr.size(); ++i){
     		cout <<arr[i] << " ";
    	}		 
    	return 0 ;
    }

    从大到小

    方法一:sort默认排序从小到大,但可以自己写函数或者使用greater<int>(),或者自定义排序规则

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    int main() {
    	int a[] = {8,6,2,9,3,5,4,1,7,10};
     	vector<int> arr(a, a+5);
    	sort(arr.begin(),arr.end(),greater<int>()); 
     	for(int i = 0; i <arr.size(); ++i){
     		cout <<arr[i] << " ";
    	}		 
    	return 0 ;
     }
     

    或者自己定义函数,大的写在前面

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    bool cmp_max(int x,int y){
    	return x > y;
    }
    
    int main() {
    	int a[] = {8,6,2,9,3,5,4,1,7,10};
     	vector<int> arr(a, a+5);
    	sort(arr.begin(),arr.end(),cmp_max); 
     	for(int i = 0; i <arr.size(); ++i){
     		cout <<arr[i] << " ";
    	}		 
    	return 0 ;
     }
     

    方法二:使用sort排序后,使用reverse() 

    注:reverse() 的将元素倒置,但不排列

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    int main() {
    	int a[] = {8,6,2,9,3,5,4,1,7,10};
     	vector<int> arr(a, a+5);
     	sort(arr.begin(),arr.end());
    	reverse(arr.begin(),arr.end());
     	for(int i = 0; i <arr.size(); ++i){
     		cout <<arr[i] << " ";
    	}		 
    	return 0 ;
     }

     

    展开全文
  • 对map容器进行排序 int cmp(const pair<int,int>& x,const pair<int,int>& y) { return x.second > y.second; } void sortMapByValue(map<int, int>& tMap,vector<pair<int...

    利用sort函数对map容器及vector容器进行排序

    #include "stdafx.h"
    #include <iostream>
    #include <vector>
    #include <map>
    #include <algorithm>
    using namespace std;
    
    
    int cmp(const pair<int, int>& x, const pair<int, int>& y)//比较函数
    {
    	return x.second < y.second;//默认按照值从小到大排序
    	//return x.second > y.second;//默认按照值从大到小排序
    }
    void sortMapByValue(map<int, int>& tMap, vector<pair<int, int> >&tVector)
    {
    	for (map<int, int>::iterator curr = tMap.begin(); curr != tMap.end(); curr++)
    		tVector.push_back(make_pair(curr->first, curr->second));
    	sort(tVector.begin(), tVector.end(), cmp);//三个参数时按照第三个参数规则进行排序
    	//sort(tVector.begin(), tVector.end());//默认按照key值从小到大排序
    	//sort(tVector.rbegin(), tVector.rend());//默认按照key值从大到小排序
    }
    
    //----------- map的key值为string与int类似
    //int64_t cmp(const pair<string, int64_t>& x, const pair<string, int64_t>& y)
    //{
    //	return x.second < y.second;//小到大
    //}
    //void sortMapByValue(map<string, int64_t>& tMap, vector<pair<string, int64_t> >&tVector)
    //{
    //	for (map<string, int64_t>::iterator curr = tMap.begin(); curr != tMap.end(); curr++)
    //		tVector.push_back(make_pair(curr->first, curr->second));
    //	sort(tVector.begin(), tVector.end(), cmp);
    //}
    
    
    int main()
    {
    	//-------  对map进行排序  --------------
    	std::map<int, int> m_win;			//需要进行排序的map
    	m_win.insert(make_pair(5, 2));
    	m_win.insert(make_pair(2, 4));
    	m_win.insert(make_pair(3, 2));
    	m_win.insert(make_pair(4, 3));
    	m_win.insert(make_pair(1, 1));
    
    	vector<pair<int, int>> vec_win;		//保存排序完成的结果vector
    	sortMapByValue(m_win, vec_win);		//进行排序
    
    	for (auto it : vec_win) {			//打印结果
    		cout << it.first << " : " << it.second << endl;
    	}
    	cout <<"----------------"<< endl;
    	// ----------  对vector进行排序 -----------
    	std::vector<int> v_num;
    	v_num.push_back(1);
    	v_num.push_back(3);
    	v_num.push_back(2);
    	sort(v_num.begin(), v_num.end());	 //vector从小到大排序
    	//sort(v_num.rbegin(), v_num.rend());  //vector从大到小排序
    
    	for (auto it : v_num) {
    		cout << it << endl;
    	}
    
    	//-------------------- map的key值为string进行排序
    	//std::map<string, int64_t > m_win;
    	//m_win.insert(make_pair("jjjj", 1));
    	//m_win.insert(make_pair("ab", 3));
    	//m_win.insert(make_pair("ba", 2));
    	//vector<pair<string, int64_t >> vec_win;//保存排序后输家玩家牛值
    	//sortMapByValue(m_win, vec_win);//进行排序小到大
    	//for (auto it : vec_win) {			//打印结果
    	//	cout << it.first.c_str() << " : " << it.second << endl;
    	//}
    
        return 0;
    }
    
    展开全文
  • C++自带sort函数对vector容器元素进行排序

    万次阅读 多人点赞 2018-07-25 16:40:05
    2.假如你定义的vector变量为vector&lt;Type&gt; num,则如下: sort(num.begin(), num.end(), sortFun); 然后如果是基本类型假如是int,第三个参数可以使用系统自带的less&lt;int&gt;()或者great.....
    1.包含头文件 #include<algorithm>,然后using namespace std;
    2.假如你定义的vector变量为vector<Type> num,则如下:
      sort(num.begin(), num.end(), sortFun);
      然后如果是基本类型假如是int,第三个参数可以使用系统自带的less<int>()或者greater<int>(),假如是自定义类型话或者复杂类型就需自己定义比较规则函数sortFun,以下以opencv中的Point2d类型举例:
    
    #include<iostream>
    #include<algorithm>
    #include<vector>
    #include<opencv2\opencv.hpp>
    using namespace std;
    using namespace cv;
    vector<cv::Point2d> po;
    
    //自定义排序函数  
    bool sortFun(const cv::Point2d &p1, const cv::Point2d &p2)
    {
    	return p1.x < p2.x;//升序排列  
    }
    
    int main()
    {
    	Point2d p1(2, 4), p2(4, 3), p3(1, 7), p4(0,4);
    	po.push_back(p1);
    	po.push_back(p2);
    	po.push_back(p3);
    	po.push_back(p4);
    	cout << "排序前: ";
    	for (auto elem : po)
    		cout << elem << " ";
    
    	sort(po.begin(), po.end(), sortFun);
    	cout << endl << "排序后: " ;
    	for (auto elem : po)
    		cout << elem << " ";
    	
    	cout << endl;
    	system("pause");
    	return 0;
    }

    运行结果:

     

    展开全文
  • vector等STL标准容器进行排序操作

    千次阅读 2017-08-12 18:50:59
    可以说,如果你理解了STL,你会发现你已不用拘泥于算法本身,从而站在巨人的肩膀上去考虑更高级的应用。 排序是最广泛的算法之一,本文详细介绍了STL中不同排序算法的用法和区别。 1 STL提供的Sort 算法 ...
  • C++笔记— 排序函数sort() 和vector容器

    千次阅读 2020-10-02 21:56:55
    一、排序函数sort()的排序(涉及到vector容器) #include <string.h> #include <vector> #include <iostream> #include <algorithm> using namespace std; int main() { vector<int&...
  • #include #include <vector> #include #include using namespace std; #define N 10000 vector<int>hash[N+10]; void insertHash(int x) { hash[0].insert(lower_bound(hash[0]
  • vector 容器排序

    2011-06-28 10:36:00
    以下只是一个框架,里面的内容可以随便改动 void sort(vector &vec){ student temp; int i,j; for ( i=0; i { for ( j=i+1; j { if ( (vec[i].getAge()) > (vec[j
  • #include #include #include #include using namespace std;... using std::vector; vector vInts; vInts.push_back(4); vInts.push_back(2); vInts.push_back(3); vInt
  • 运行结果文件列表 ...说明此处定义结构体或者类都一样,都可以借助算法库,自己定义排序规则,然后使用sort方法,灵活变通代码student.h#ifndef STUDENT_H #define STUDENT_H #endif class Student{ public: int a
  • vector容器给map排序

    2018-01-29 18:36:51
    //题目描述:找寻一堆数据中哪个数据出现的最多;...//vector容器 中关于map对象的排序; struct cmpByValue { bool operator()(const PAIR&amp; left, const PAIR&amp; right) { ...
  • //by 鸟哥 sort函数 //有疑问请留言或加群 1032082534 #include // For standard streams #include // For string class #include // For vector container #include // For stream and back insert iterators #...
  • vector向量容器元素排序与查找

    千次阅读 2016-03-18 22:56:37
    1.利用标准库函数sort()对vector进行排序参考源码:#include #include <vector>vector<int> vec; //比较函数,这里的元素类型要与vector存储的类型一致 bool compare(int a,int b) { return a; //升序排列 }std::...
  • Java用vector容器排序

    千次阅读 2014-06-04 17:58:57
    Java用vector容器排序 /** * 功能:定义一个Student数组,其中保存学生的基本信息,包括姓名,学号,性别,还有三门课的成绩 * 和课程对应的学分,计算出学分积,降序排序 * 时间:2014年6月4日16:33:24 * ...
  • C++ Vector 容器按自定义属性排序 //y正序 bool Sort_y(Rect rect1, Rect rect2) { return rect1.y < rect2.y; } //x正序 bool Sort_x(Rect rect1, Rect rect2) { if (rect1.y == rect2.y) { return rect...
  • //输出pair的元素 } 按键排序结果 键/值 A 3 B 2 C 1 D 3 F 2 G 2 H 2 I 2 J 3 K 2 L 3 M 3 N 1 P 6 R 1 S 2 U 1 V 2 W 2 X 2 Y 2 如果想按照自己的意愿排序可以把map放进其他容器,比如vector >中,使用sort函数...
  • 先说一下归并排序的基本思想,本人画图能力有限,在这里给...因为本人写代码的时候想着省事一点所以没有用数组,直接用的vector容器,觉得太繁琐,其实用数组肯定也可以的!有错的地方希望看到的大佬即使纠正。
  • 最近有个项目需要使用C++ STL的vector容器,然后做一个排序操作。STL很强大,有它自己的排序方法。 std::sort(数组起始指针,数组尾指针,排序规则); 举例如下: //参考文献,sort对结构体排序 //排序方法,sort...
  • 使用C++标准库中的Vector容器实现词频统计与排序
  • vector自定义排序

    千次阅读 2017-06-04 09:25:00
    vector结构体sort排序
  • vector容器用法详解

    千次阅读 2019-05-05 10:17:44
    类模板std::vector 容器属性 函数总览: Iterators(迭代器): begin:将迭代器返回到开头。 end:将迭代器返回到结束。 rbegin:返回反向迭代器以反向开始。 rend:将反向迭代器返回到反向结束。 Capacity...
  • C++的vector容器使用qsort()和sort()

    千次阅读 2020-04-13 17:58:54
    vector容器定义的数组可以使用sort排序 vector<int> test; sort(test.begin(),test.end()); 但是使用qsort时, qsort(numbers,len,sizeof(int),compare);//错误用法 int compare(const void * arg1, ...
  • (3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序vector容器获取首地址: 使用 begin()函数 vector容器获取结束地址: 使用 end()函数
  • 快速排序(基于顺序容器vector;基于数组array)
  • 一、作用: C++中自带的排序方法,需要提供序列的头、尾地址,和排序方式(降序或升序)。其中时间复杂度为n*log2(n),效率较高! 二、用法: (1)头函数:#include ...可自定义,也可以使用内置排
  • 【C++】vector数组排序

    千次阅读 2021-05-23 15:06:02
    vector是C++的STL中一个重要的容器嘛,STL不用说也知道它的功能十分强大,所以有一些内置排序函数。下面来细说一下。 一.简单升序排序 (1)准备 vector头文件,用来引入vector数组 algorithm头文件,用来引入...
  • 1.编写compare函数 static bool compare(vector<int>&a,vector<int>&b) { return a[1]<...sort(intervals.begin(),intervals.end(),compare);//intervals为二维vector容器 3.例子

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,032
精华内容 24,812
关键字:

vector容器可以排序吗