C++ c++;自定义向量排序
我不会太深入地去做我正在做的事情,因为这是家庭作业,我不需要为我做,但是,我确实需要一些帮助。我需要能够指定C++ c++;自定义向量排序,c++,sorting,vector,C++,Sorting,Vector,我不会太深入地去做我正在做的事情,因为这是家庭作业,我不需要为我做,但是,我确实需要一些帮助。我需要能够指定向量的哪个部分首先得到排序,以及在哪些参数下得到排序 目前我所做的一切都是通过打电话来实现的 sort ( v.begin(), v.end() ); 如果你写出我的向量,它们看起来会像: 5 2 4 6 12 2 5 2251225721 我可能需要按第二列降序排序,如果第二列相同,我将按下一个指定列排序 称为like./sort 2,4 将按第二列和第四列排序 我环顾四周,除了为此编
向量
的哪个部分首先得到排序,以及在哪些参数下得到排序
目前我所做的一切都是通过打电话来实现的
sort ( v.begin(), v.end() );
如果你写出我的向量,它们看起来会像:
5 2 4 6 12 2 5
2251225721
我可能需要按第二列降序排序,如果第二列相同,我将按下一个指定列排序
称为like./sort 2,4
将按第二列和第四列排序
我环顾四周,除了为此编写自己的排序算法外,我不知道如何自定义排序。std::sort()
还有第二种形式,它将比较函子作为第三个参数。这使您可以控制排序的顺序,而无需自己编写排序算法
您提供的函数有两个对象,如果第一个对象排序在第二个对象之前(“小于”),则必须返回true
,否则返回false
例如:
排序(v.begin(),v.end(),[](常量向量和v1,常量向量和v2){
//如果v1std::sort()
有第二种形式,它将比较函子作为第三个参数。这使您可以控制排序的顺序,而无需自己编写排序算法
您提供的函数有两个对象,如果第一个对象排序在第二个对象之前(“小于”),则必须返回true
,否则返回false
例如:
排序(v.begin(),v.end(),[](常量向量和v1,常量向量和v2){
//如果v1std::sort()
有第二种形式,它将比较函子作为第三个参数。这使您可以控制排序的顺序,而无需自己编写排序算法
您提供的函数有两个对象,如果第一个对象排序在第二个对象之前(“小于”),则必须返回true
,否则返回false
例如:
排序(v.begin(),v.end(),[](常量向量和v1,常量向量和v2){
//如果v1std::sort()
有第二种形式,它将比较函子作为第三个参数。这使您可以控制排序的顺序,而无需自己编写排序算法
您提供的函数有两个对象,如果第一个对象排序在第二个对象之前(“小于”),则必须返回true
,否则返回false
例如:
排序(v.begin(),v.end(),[](常量向量和v1,常量向量和v2){
//如果v1(当然,由您自己来确定排序所需的逻辑。)为什么不传递一个
std::vector?
请详细说明。我对C++非常陌生,一定会错过一些东西。今天花了5个小时试图让这个程序完成它应该做的事情。为什么不传递一个std::vector?
请详细说明。我对C++非常陌生,一定会错过一些东西。今天花了5个小时试图让这个程序完成它应该做的事情。为什么不传递一个std::vector?
请详细说明。我对C++非常陌生,一定会错过一些东西。今天花了5个小时试图让这个程序完成它应该做的事情。为什么不传递一个std::vector?
请详细说明。我对C++非常陌生,一定会错过一些东西。今天花了5个小时试图让这个程序做它应该做的事情。这与我正在寻找的一样,谢谢。有没有标准的方法来指定要检查的第一个字符串?@TheUnknown:我不知道你的意思。在上面的代码中,您正在对向量进行排序。排序函数一次提供两个向量进行比较。您可能需要迭代这两个向量,并应用您需要的任何逻辑来确定这两个向量应该如何相对定位。是的,这是有道理的,我认为我是jsut弄错了。这与我正在寻找的内容一致,谢谢。有没有标准的方法来指定要检查的第一个字符串?@TheUnknown:我不知道你的意思。在上面的代码中,您正在对向量进行排序。排序函数一次提供两个向量进行比较。您可能需要迭代这两个向量,并应用您需要的任何逻辑来确定这两个向量应该如何相对定位。是的,这是有道理的,我认为我是jsut弄错了。这与我正在寻找的内容一致,谢谢。有没有标准的方法来指定要检查的第一个字符串?@TheUnknown:我不知道你的意思。在上面的代码中,您正在对向量进行排序。排序函数一次提供两个向量进行比较。您可能需要迭代这两个向量,并应用您需要的任何逻辑来确定这两个向量应该如何相对定位。是的,这是有道理的,我认为我是jsut弄错了。这与我正在寻找的内容一致,谢谢。有没有标准的方法来指定要检查的第一个字符串?@TheUnknown:我不知道你的意思。在上面的代码中,您正在对向量进行排序。排序函数一次提供两个向量进行比较。您可能需要迭代这两个向量并应用任何内容
std::sort(v.begin(), v.end(), [](const vector<string>& v1, const vector<string>& v2) {
// return true if v1 < v2, false otherwise
});