标签: comparator

矢量比较器<pair<int,int>>

vector<pair<int,int> > v;
for(i=0;i<5;i++){
    cin>>b>>c;
    v.push_back(make_pair(b,c));
}
sort(v.begin(),v.end());
Run Code Online (Sandbox Code Playgroud)

是否可以为排序函数编写一个比较器,以便v[i].first按升序排序,并且对于 的相似值v[i].firstv[i].second按降序排序?
像:-
i/p:

 13 10  
 44 15  
 13 15  
 13 99  
  6 45  
Run Code Online (Sandbox Code Playgroud)

输出:

 6 45  
 13 99  
 13 15  
 13 10  
 44 15 
Run Code Online (Sandbox Code Playgroud)

c++ stl vector comparator std-pair

-2
推荐指数
1
解决办法
1万
查看次数

使用Comparator在java中进行排序

我正在尝试使用Comparator如下所示的排序集.

Set seatSet = tc.getTheatreSeat();
    List listArr = new ArrayList(seatSet);
    Collections.sort(listArr, new Comparator() {
        public int compare(Object arg0, Object arg1) {
            TheatreSeat r1 = (TheatreSeat) arg0;
            TheatreSeat r2 = (TheatreSeat) arg1;
            if (r2.getId() < r1.getId()) {
                return 1;
            }
            return 0;
        }
    });
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我的代码有什么问题请帮忙.

java set comparator

-2
推荐指数
1
解决办法
1万
查看次数

为具有自定义键的C++映射编写自定义比较器

我正在尝试为具有自定义键的C++映射编写自定义比较器.

struct key { int year; int no; };
map<key, detail, compare> details_map;
Run Code Online (Sandbox Code Playgroud)

如果year值相等,则必须比较no值.

我试图想出一种方法来编写一个可以比较两个值的比较器.到目前为止,我只能写一个比较一个值的比较器.

struct Compare{bool operator()(const key &lhs,const key &rhs)const{return lhs.year<rhs.year;}}
Run Code Online (Sandbox Code Playgroud)

有人可以解释比较器如何工作map

此外,是否可以将比较器写为函数?

c++ comparator

-2
推荐指数
1
解决办法
810
查看次数

Verilog比较器

我是一个verilog的新手.

我做了很多研究,最后编写了这段代码,但似乎无法正常工作.

任何人都可以帮我解决吗?

module comparator();
    reg[3:0] a, b;
    wire[1:0] equal, lower, greater;    

    if (a<b) begin

        equal = 0;
        lower = 1;
        greater = 0;
    end

    else if (a==b) begin
        equal = 1;
        lower = 0;
        greater = 0;
    end

    else begin
        equal = 0;
        lower = 0;
        greater = 1;
    end;

    initial begin
                $monitor($time, 
                         "a=%b, b=%b, greater=%b, equals=%b, lower=%b",
                          a, b, greater, equal, lower);

                a=9; b=10;
                #100 $display ("\n", $time, "\n");
        end
endmodule 
Run Code Online (Sandbox Code Playgroud)

verilog comparator

-3
推荐指数
1
解决办法
2万
查看次数

您可以使用Java中的Comparator创建许多排序序列是什么意思?

在可比性中,只能创建一个排序序列,而在比较器中,可以创建许多排序序列。排序顺序在这里到底是什么意思。

java sorting collections comparable comparator

-3
推荐指数
1
解决办法
1091
查看次数

Math.abs(Integer)不起作用,无法将Integer转换为int

我正在实现一个基于绝对值进行排序的比较器.所有我认为我需要的是这一行代码:

public int compare(Integer int1, Integer int2) {
    return Math.abs(int1).compareTo(Math.abs(int2));
}
Run Code Online (Sandbox Code Playgroud)

错误:'no suitable method found for abs(Integer)'

我以为Java将Integer对象解包为int?

我尝试使用.intValue()从两个Integer对象中提取int值,但这也不起作用.我究竟做错了什么?

java comparator

-4
推荐指数
1
解决办法
342
查看次数

Java 8比较方法违反了比较器中的一般合同问题

虽然我使用下面的比较器来对我正在获得的对象进行排序比较方法违反了比较器中的一般合同问题.

final Set<Span> set = new TreeSet<Span>(new Comparator<Span>() {

        public int compare(final Span firstSpan, final Span secSpan) {
            BigInteger s1X0 = firstSpan.getCoordinates().getX0();
            BigInteger s1X1 = firstSpan.getCoordinates().getX1();
            BigInteger s2X0 = secSpan.getCoordinates().getX0();
            BigInteger s2X1 = secSpan.getCoordinates().getX1();

            BigInteger s1Y0 = firstSpan.getCoordinates().getY0();
            final BigInteger s2Y0 = secSpan.getCoordinates().getY0();

            if(s1X0.intValue() == s2X0.intValue() && s1X1.intValue() == s2X1.intValue() && s1Y0.intValue() == s2Y0.intValue()){
                return 0;
            }
            if ((s1Y0.intValue() - s2Y0.intValue() <= 5) && (s1Y0.intValue() - s2Y0.intValue() >= -5)) {
                return (s1X0.intValue()>s2X0.intValue()) ? 1 : -1;
            } else {
                if …
Run Code Online (Sandbox Code Playgroud)

java sorting comparator java-8

-4
推荐指数
1
解决办法
953
查看次数

Comparator.comparing在java 8流中没有Method引用时无法正常工作

List<Animal> animals = this.service.findAll();
animals = animals.stream().sorted(Comparator.comparing(Animal::getName)).collect(Collectors.toList());

//working 
Run Code Online (Sandbox Code Playgroud)

List<Animal> animals = this.service.findAll();
animals = animals.stream().sorted(Comparator.comparing(Animal.getName()).collect(Collectors.toList());

//Not working..
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么我不能使用比较器比较没有方法参考?

java stream comparator java-8

-5
推荐指数
1
解决办法
830
查看次数

"java.util.Comparator.compare(String o1,String o2)"方法的工作原理

任何人都可以请你解释一下java"compare"方法如何适用于输入 "XXXXS, XXXS, XXS, XS,S,M, L,XL,XXL,3XL"

如果输出是"3XL,XS,S,M,L,XL,XXL"输出"3XL,XS,S,M,L,XL,XXL"但我想输出为"XS,S,M,L,XL,XXL,3XL"

根据java文档("https://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html"),它说"比较它的两个参数的顺序.返回一个负整数,零,或第一个参数的正整数小于,等于或大于第二个参数."

当输入是两个字符串时它如何比较小于或大于?我认为输出不是基于字母顺序,因为"3XL,XS,S,M,L,XL,XXL"是我得到的输出.

java compare comparator

-6
推荐指数
1
解决办法
698
查看次数

标签 统计

comparator ×9

java ×6

c++ ×2

java-8 ×2

sorting ×2

collections ×1

comparable ×1

compare ×1

set ×1

std-pair ×1

stl ×1

stream ×1

vector ×1

verilog ×1