首页 > 其他分享 >sort函数对vector一维或者二维数组排序

sort函数对vector一维或者二维数组排序

时间:2024-03-30 14:29:24浏览次数:39  
标签:sort arr 横坐标 vector 一维 升序 排序

目录

sort对一维数组排序

1、sort对一位数组升序排序

2、sort对一维数组降序排序

sort对二维数组排序

1、sort默认对横坐标进行升序排序,如下:

2、使用自定义排序对纵坐标进行升序排序:

额外知识:

对横坐标进行降序排列,当横坐标相同时,对纵坐标进行升序排序


sort对一维数组排序

1、sort对一位数组升序排序

sort函数默认对横坐标进行升序排序,如下:

#include <bits/stdc++.h>
using namespace std;
int main(){
	vector<int> arrs={5,7,9,1,6,4,5};
	sort(arrs.begin(),arrs.end());
	for(int i=0;i<arrs.size();i++){
		cout<<arrs[i]<<" ";
	}
	return 0;
}

结果:

 

2、sort对一维数组降序排序

使用greater()函数对一维数组进行降序排列:

#include <bits/stdc++.h>
using namespace std;
int main(){
	vector<int> arrs={5,7,9,1,6,4,5};
	sort(arrs.begin(),arrs.end(),greater());
	for(unsigned int i=0;i<arrs.size();i++){
		cout<<arrs[i]<<" ";
	}
	return 0;
}

结果:

 

sort对二维数组排序

1、sort默认对横坐标进行升序排序,如下:
#include <bits/stdc++.h>
using namespace std;
int main(){
	 vector<vector<int>> arr = {{3, 2}, {1, 4}, {7, 6},{1,3}};
//	对二维数组按照横坐标进行升序排列
	sort(arr.begin(),arr.end());
	for(auto& re:arr){
		cout<<"["<<re[0]<<" "<<re[1]<<"]"<<endl;
	}
	return 0;
}

结果:

2、使用自定义排序对纵坐标进行升序排序:
#include <bits/stdc++.h>
using namespace std;
int main(){
	 vector<vector<int>> arr = {{3, 2}, {1, 4}, {7, 6},{1,3}};
//	对二维数组按照纵坐标进行升序排列
	sort(arr.begin(),arr.end(),[](const vector<int> a,const vector<int> b){
		return a[1]<b[1];
	});
	for(auto& re:arr){
		cout<<"["<<re[0]<<" "<<re[1]<<"]"<<endl;
	}
	return 0;
}

结果:

同理,如果要对横坐标进行升序排序,修改自定义排序规则就行,如下:

额外知识:
对横坐标进行降序排列,当横坐标相同时,对纵坐标进行升序排序
#include <bits/stdc++.h>
using namespace std;
int main(){
	 vector<vector<int>> arr = {{3, 2}, {1, 4}, {7, 6},{1,3}};
//	对横坐标进行降序排列,当横坐标相同时,对纵坐标进行升序排序
	sort(arr.begin(),arr.end(),[](const vector<int> a,const vector<int> b){
		return a[0]==b[0]?a[1]<b[1]:a[0]>b[0];
	});
	for(auto& re:arr){
		cout<<"["<<re[0]<<" "<<re[1]<<"]"<<endl;
	}
	return 0;
}

结果:

 

标签:sort,arr,横坐标,vector,一维,升序,排序
From: https://blog.csdn.net/qq_71416673/article/details/137171626

相关文章

  • 24、C++的一维数组概念
    数组是一组数据类型相同的变量,可以存放一组数据。1、创建数组声明数组的语法:数据类型数组名[数组长度];注意:数组长度必须是整数,可以是常量,也可以是变量和表达式。C90规定必须用常量表达式指明数组的大小,C99允许使用整型非常量表达式。经测试,在VS中可以用用整型非常量表达......
  • Vector容器
    vector容器最常用的容器之一1.1vector基本概念功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间......
  • vector容器(二)
    一、vector数据存取函数原型:at(intidx);//返回索引idx所指的数据operator[];//返回索引idx所指的数据front();//返回容器中第一个数据元素back();//返回容器中最后一个数据元素代码示例:#include<iostream>usingnamespacestd;#include<vector>//vector容器数......
  • C++之STL整理(2)之vector超详用法整理
    C++之STL整理(2)之vector用法(创建、赋值、方法)整理注:整理一些突然学到的C++知识,随时mark一下例如:忘记的关键字用法,新关键字,新数据结构C++的vector用法整理C++之STL整理(2)之vector用法(创建、赋值、方法)整理一、vector的初始化1、默认构造函数2、拷贝构造函数copy区间3......
  • LeetCode-21 Merge Two Sorted Lists
    21.MergeTwoSortedLists EasyYouaregiventheheadsoftwosortedlinkedlists list1 and list2.Mergethetwolistsintoone sorted list.Thelistshouldbemadebysplicingtogetherthenodesofthefirsttwolists.Return theheadofthemerg......
  • Kruskal最小生成树【详细解释+动图图解】&【sort中的cmp函数】& 【例题:洛谷P3366 【模
    文章目录Kruskal算法简介Kruskal算法前置知识sort中的cmp函数算法思考样例详细示范与解释kruskal模版code↓例题:洛谷P3366【模板】最小生成树code↓完结撒花QWQKruskal算法简介Kr......
  • vector初始化
    1.一维初始化//无参初始化vector<int>vec1;//长度为10vector<int>vec2(10);//长度为10,且初始化为1vector<int>vec3(10,0);2.二维数组初始化//无参初始化vector<vector<int>>vec1;//确认行数vector<vector<int>>vec2(3);//确认行数、列数:三行四列vecto......
  • 【C语言】数组(一维、二维数组的简单介绍)
    数组(Array)数组概念数组是一组相同数据类型元素的集合,属于一种简单的数据结构,从中可以得到三个有效信息数组元素是同一数据类型的变量数组存放一个或者多个数据,但是数组元素个数不能为0数组中各元素可独立作为一个基本变量使用注:数组分为一维数组和多维数组,多维数组一......
  • std::sort 错误"Expression : invalid operator <"
    解决:std::sort的比较函数,切记仅使用小于或大于,不要使用小于等于或大于等于。即所谓的“strictweakordering”,也就是说,如果a==b,则返回的应该是false,如果返回的是true,则会出上面的错这个问题是标准库sort实现导致的参考https://blog.csdn.net/qq_35097289/article/details/1046......
  • [C#] .NET8增加了Arm架构的多寄存器的查表函数(VectorTableLookup/VectorTableLookupEx
    作者:zyl910发现.NET8增加了Arm架构的多寄存器的查表函数(VectorTableLookup/VectorTableLookupExtension),这给编写SIMD向量化算法带来了方便。一、指令说明在学习Arm的AdvSimd(Neon)指令集时,发现它的Lookup(查表)功能,类似X86的Sse系列指令集中的字节Shuffle(换位。如_mm_shuffle_epi......