精华内容
下载资源
问答
  • java 中vector 排序
    2021-02-12 15:38:38

    展开全部

    自定义排序吧,自己写一62616964757a686964616fe58685e5aeb931333332623436个比较子, 实现Comparator借口, 在比较子之中实现自己的比较规则。将所有的需要排序的vector放入到一个List之中,然后调用Collections的sort方法进行排序。

    下面是实现的代码。import java.util.ArrayList;

    import java.util.Collections;

    import java.util.Comparator;

    import java.util.List;

    import java.util.Vector;

    public class TestSort {

    public static final Comparator> VECTOR_COMPARATOR = new Comparator>() {

    @Override

    public int compare(Vector v1, Vector v2) {

    if (v1 == null || v1.size() 

    return -1;

    }

    if (v2 == null || v2.size() 

    return 1;

    }

    return Integer.valueOf(v2.get(1)) - Integer.valueOf(v1.get(1));

    }

    };

    public static void main(String[] args) {

    Vector v1 = new Vector();

    Vector v2 = new Vector();

    Vector v3 = new Vector();

    v1.add("hmm");

    v1.add("2");

    v2.add("we");

    v2.add("5");

    v3.add("de");

    v3.add("3");

    List> vList = new ArrayList>();

    vList.add(v1);

    vList.add(v2);

    vList.add(v3);

    Collections.sort(vList, VECTOR_COMPARATOR);

    System.out.println(vList);

    }

    }

    最后输出的结果是:

    [[we, 5], [de, 3], [hmm, 2]]

    更多相关内容
  • 排序 头文件:#include <algorithm> 示例如下,默认升序 #include <iostream> #include <vector> #include <algorithm> using namespace std; int main(){ vector<int>vec{5,4,...

    vector<int>排序

    头文件:#include <algorithm>

    示例如下,默认升序

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    int main(){
            vector<int>vec{5,4,6,9,8,1};
            sort(vec.begin(), vec.end());// 默认升序
            for(auto n:vec)
                    cout<<n<<" ";
            return 0;
    }
    // 输出为 1 4 5 6 8 9

    降序排列(最简单),只需补充

    // 方法一:使用标准库比较函数对象
    sort(vec.begin(), vec.end(), std::greater<int>());

     其他几种自定义方法参考文档

    // 方法二:使用自定义函数对象
    struct {
        bool operator()(int a, int b) const
        {   
            return a > b;
        }   
    } customLess;
    sort(s.begin(), s.end(), customLess);
    // 方法三:借助lambda表达
    std::sort(s.begin(), s.end(), [](int a, int b) {
        return a > b;   
    });

    复杂度-->快速排序

    O(N\dot log(N))

    vector多维数组比较

    默认按照第一个维度排序

    如果需要对其他维度排序,就需要自己写比较函数

    这里用lambda表达来实现

    vector<vector<int>>vec(5, vector<int>(5));//构造5x5数组
    
    sort(vec.begin(), vec.end(), [](const vector<int>&a, const vector<int>&b){
        return a[1]>b[1]; // 降序
    });// 其他维度同理

    vector结构体比较

    自定义函数即可,举个简单的例子

    我们希望按照结构体的id排序

    struct stu{
        int id;
        int age;
        string name;
    };
    
    bool sort_by_id(const stu &s1, const stu &s2){
        return s1.id < s2.id; // 升序
    }
    
    

    保留相同元素相对位置比较

    stl库中的sort使用的是快速排序(没记错的话),效率比较高

    但是如果两个元素大小相同,可能会在排序的过程中相对顺序发生改变

    快速排序是一个不稳定的算法,在经过排序之后,可能会对相同值的元素的相对位置造成改变。

    因此,如果想保持相对位置不改变,可以使用stable_sort()

    基本用法和sort差不多,具体案例见文档​​​​​​​​​​​​

    展开全文
  • std::vector排序详解

    2011-10-09 13:20:38
    一个详细全面的关于vector排序的例子。 涉及到 如何继承std::binary_function, CString, bool>、如何重载operator().
  • java Vector排序及用法

    2021-02-12 15:38:35
    temp=CustomerMaker.quickPassQueue.get(0);//获得首元素CustomerMaker.quickPassQueue.remove(0);//删除首元素quickPassQueue.add();在末尾添加元素----演示程序-----import java....public class test{Vector v = ...

    temp=CustomerMaker.quickPassQueue.get(0);//获得首元素

    CustomerMaker.quickPassQueue.remove(0);//删除首元素

    quickPassQueue.add();在末尾添加元素

    ----演示程序-----

    import java.util.*;

    import java.io.*;

    public class test

    {

    Vector v = new Vector();

    public void testMethod(){

    v.add("a");

    v.add("b");

    v.add("c");

    System.out.println("\n原来的vecotr");

    for(int i=0;i

    System.out.println("\n"+" index is: "+ i + " element is: " +v.get(i));

    }

    v.remove(0);

    System.out.println("\n去掉一个vector中第一个元素");

    for(int i=0;i

    System.out.println("\n"+" index is: "+ i + " element is: " +v.get(i));

    }

    }

    public static void main(String[] args)

    {

    test t = new test();

    t.testMethod();

    System.out.println("Hello World!");

    }

    }

    -----------------排序程序------------------------------

    import java.util.*;

    class MyCompare implements Comparator //实现Comparator,定义自己的比较方法

    {

    public int compare(Object o1, Object o2) {

    Elem e1=(Elem)o1;

    Elem e2=(Elem)o2;

    if(e1.get() > e2.get())//这样比较是降序,如果把-1改成1就是升序.

    {

    return -1;

    }

    else if(e1.get()

    {

    return 1;

    }

    else

    {

    return 0;

    }

    }

    }

    class Elem {

    private int iVal;

    public Elem(int i) {

    this.iVal = i;

    }

    public int get() {

    return this.iVal;

    }

    }

    public class Vector1 {

    public static void main(String[] args) {

    List v = new Vector();

    v.add(new Elem(1));

    v.add(new Elem(22));

    v.add(new Elem(3));

    v.add(new Elem(14));

    Comparator ct = new MyCompare();

    Collections.sort(v, ct);

    for (int i = 0; i < v.size(); i++)

    System.out.println(((Elem) v.get(i)).get());

    }

    }

    posted on 2010-01-26 01:48 luis 阅读(5308) 评论(0)  编辑 收藏 引用 所属分类: 转载 、Java笔记

    展开全文
  • C++对vector排序

    2021-08-05 14:51:26
    解决方案 包含 algorithm 头文件,使用 std::sort() 函数对 vector 进行排序。 语法 #include

    解决方案

    使用 std::sort() 函数对 vector 进行排序,该函数在 algorithm 头文件中

    方式:

    1. 基本数据类型
    2. 自己定义的类型

    示例

    1. 基本数据类型

      直接比较即可

      //此处为头文件
      void test01() {
          std::vector<int> vInt{ 1, 2, 3, 4, 5 };
          std::sort(vInt.begin(), vInt.end()); //升序
          std::sort(vInt.rbegin(), vInt.rend()); //降序
      }
      
    2. 自己定义的类型

      示例:

      class Person {
      public:
          int age;
          string name;
          Person(int age = 0, string name = "张三") : age{ age }, name{ name } {}
      }
         
      Person p[] = { { 11, "hhh" }, { 22, "xxx" }, { 22, "www" } };
      

      编译器不知道Person类型如何相互比较,要提供函数告诉编译器如何比较两个函数

      有两种方式

      1. 重载小于运算符

        //此处为头文件
        bool Person::operator<(Person &p) { //重载小于运算符
            return (this->age < p.age ? true : (this->name < p.name));
        }
        void test02() {
            std::vector<Person> vPerson;
            for (int i{ 0 }; i < 3; ++i) {
            	vPerson.push_back(p[i]);
            }
            std::sort(vPerson.begin(), vPerson.end()); //升序
            std::sort(vPerson.rbegin(), vPerson.rend()); //降序
        }
        
      2. 提供比较函数

        当vector的参数类型是指针时,重载小于运算符无法比较两个指针所指向的内容的大小

        此时可以提供比较函数

        //此处为头文件
        bool cmp(Person *p1, Person *p2) { //提供比较函数
            return (p1->age < p2->age ? true : (p1->name < p2->name));
        }
        void test03() {
            std::vector<Person *> vPerson;
            for (int i{ 0 }; i < 3; ++i) {
            	vPerson.push_back(p+i);
            }
            std::sort(vPerson.begin(), vPerson.end(), cmp); //升序
            std::sort(vPerson.rbegin(), vPerson.rend(), cmp); //降序
        }
        
    展开全文
  • 在针对一个map进行值排序的时候,想到将map中键值对放到vector中,然后通过sort来进行排序。于是,奇妙的事情发生了。。,代码如下: //将map赋值给vector vector<pair<char, int>> numV(numM.begin()...
  • c++二维vector排序

    2021-07-31 09:30:25
    bool comp(vector &lhs,vector &rhs){ if(lhs[0]==rhs[0]) return lhs[1]<rhs[1]; else return lhs[0]<rhs[0]; } sort(intervals.begin(),intervals.end(),comp);
  • C++中的结构体vector排序详解 使用sort函数对一个vector很常用,前提是通文件中必须包含#include ,但是针对结构体vector排序则需要进行一定的改动。具体事例如下所示: // sort algorithm example #include <...
  • C++ vector排序

    万次阅读 多人点赞 2018-08-08 14:37:17
    使用sort()函数(要添加引用algorithm)可以很方便地对数组进行排序,搭配自定义的compare函数可以实现多种对数据进行排序的方式,同样,对vector排序也可以使用sort函数,一般来说,在对vector进行排序地时候,要...
  • C++ 对vector 排序

    千次阅读 2020-07-16 17:22:55
    本人也是一个C++的小白,这个就是我在参照了他们(那很多...1、单独一个vector排序: bool cmp(double v1,double v2) { return v1>v2 } vector<double> vect1; //这里要给两个vector赋值。 vect1.push_ba
  • C++ 二维vector排序(sort用法)

    千次阅读 多人点赞 2021-02-13 12:35:10
    C++二维vector排序sort 函数的使用 sort 函数的使用 自定义排序函数 (目标:对 二维vector<vector> points中第二个元素进行排序) static bool cmp(const vector<int>& a,const vector<int&...
  • #include <algorithm> #include <numeric> #include<vector> #include <iostream> using namespace std;...std::vector<... sort_indexes(const std::vector<... std::vector.
  • #include<iostream>...vector> int main(){ vector<int> nums{1,3,2,5,4}; vector<int> indexs; // 初始化下标 for (int i=0; i<nums.size(); i++){ indexs.push_bac.
  • 单例模板类+vector排序

    2017-03-10 16:56:54
    单例模板类,实现vector中结构体数据的排序
  • vector 排序

    2011-09-14 19:26:18
    C++中当 vector 中的数据类型为基本类型时我们调用std::sort函数很容易实现 vector中数据成员的升序和降序排序,然而当vector中的数据类型为自定义结构体类型时,我们该怎样实现升序与降序排列呢?有两种方法,下面...
  • sort对vector排序

    2019-03-23 23:09:39
    #include<iostream> #include<algorithm>...vector> using namespace std; struct node{ int val; string s; node(int vv,string ss){ val = vv; s = ss; } }; bool cmp(const ...
  • <vector>排序

    2015-07-13 23:40:51
    我的其他资源都是免费的,是对于c语言初学者的帮助比较大的,其中有单片机,ARM,数据结构,window编程,MFC编程,自己编写的小游戏。
  • 用sort对vector排序

    千次阅读 多人点赞 2018-08-30 14:39:59
    分为升序和降序两排序方式: vector&lt;int&gt;v; sort(v.begin(), v.end(),less&lt;int&gt;());//升序 sort(v.begin(), v.end(),greater&lt;int&gt;());//降序  
  • C++:vector 排序

    千次阅读 2019-04-02 22:59:35
    vector内存元素排序方式: #include <opencv2/opencv.hpp> #include <iostream> #pragma comment(lib,"opencv_world341.lib") using namespace cv; using namespace std; int main() { vector<...
  • 【C++】vector数组排序

    千次阅读 2021-05-23 15:06:02
    最近刷力扣的时候遇到了好多vector数组自定义排序问题,这里先来总结一下。 vector是C++的STL中一个重要的容器嘛,STL不用说也知道它的功能十分强大,所以有一些内置排序函数。下面来细说一下。 一.简单升序排序 ...
  • C++标准库 std::sort vector排序

    万次阅读 2015-07-31 15:27:48
    前天要做一个对C++ STL的vector容器做一个排序操作,之前一直把vector当做一个容量可自动变化的数组,是的,数组,所以打算按照对数组进行排序的方法:用快速排序或是冒泡排序等算法自己写一个排序的函数。...
  • C++ vector 排序 顺序和逆序

    千次阅读 2020-03-13 22:49:52
    C++中对于vector中的元素顺序排序为: std::sort(v.begin(),v.end()); 对于vector中的元素逆序排序为: std::sort(v.rbegin(),rend()); 如对以下vector逆序排序 #include <vector> #include <algorithm>...
  • 「Rust笔记」Rust之vector排序总结

    千次阅读 2020-11-14 19:39:38
    2、vector整数排序 这里通过 vec::sort 对一个整数 Vector 进行排序 fn main() { let mut vec = vec![1, 34, 10, 2, 15]; vec.sort(); println!("{:?}",vec); } 运行结果 [1, 2, 10, 15, 34] 另一种方法是使用 ...
  • STL使用_Vector排序

    2008-09-12 10:33:45
    使用VC++控制台应用程序编写,测试了:vector对象的排序,对象中的大小无序,有重复。
  • //vector排序 vector<int> v1,v2,res; v1.push_back(5); v1.push_back(2); v1.push_back(9); v2=v1; sort(v1.begin(),v1.end(),greater<int>()); //降序排列 vector<int>::iterator iter; for ...
  • vector中存的是指针,然后自己写了排序, BOOL CompareLess(const CFriendRoomUser *rhs, const CFriendRoomUser *lhs) { return rhs->m_nPayoffMoney < lhs->m_nPayoffMoney; } 但是在编译的时候总是报错,是在...
  • vector<int>a{3,3,2,1,4,2,5}; set<int>s(a.begin(),a.end()); a.assign(s.begin(), s.end()); 思想二: //unique 通常和erase函数一起使用 sort(a.begin(), a.end()); vector<int>::iterator ...
  • 关于vector排序

    千次阅读 2019-08-14 16:01:49
    vector<shared_ptr<IBslBuildingStorey>> buildStoreys; //按楼层排序 -----------方法1 map<double, shared_ptr<IBslBuildingStorey>> MapStoreys; for (auto &istorey : ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 274,373
精华内容 109,749
关键字:

vector排序

友情链接: AngularSpreadJSExcelIO.zip