C ++ 11 사용자 지정 개체의 Ordered 집합에서 누락 된 값

letsBeePolite

먼저 double 값으로 정렬 된 다음 set_type 데이터 구조의 세트 비트 수로 정렬 된 SET [Order SET C ++ 11]의 요소를 가지려고합니다. 사용자 지정 비교기를 만들었지 만 설정된 비트 수가 동일한 요소를 삽입하지 않았습니다. 그러나 set_type의 세트 비트 수에 따라 요소를 정렬하지 않으면 올바른 출력이 제공됩니다.

#include <iostream>
#include <set>
#include <cstdint>

typedef uint64_t set_type;

struct setNode {
    std::pair<double,set_type> data;
};

unsigned int bitCount (set_type value) {
    unsigned int count = 0;
    while (value > 0) {           // until all bits are zero
        if ((value & 1) == 1)     // check lower bit
            count++;
        value >>= 1;              // shift bits, removing lower bit
    }
    return count;
}


struct CompClass {
    bool operator()(const setNode& lhs, const setNode& rhs) const
    {

        if (lhs.data.first == rhs.data.first) {
            int n1 = bitCount(lhs.data.second);
            int n2 = bitCount(rhs.data.second);
            return n1 > n2;
        }
        return lhs.data.first < rhs.data.second;
    }
};


int main() {


    set_type x = 15;    

    std::set<setNode,CompClass> Q;
    std::set<setNode,CompClass>::iterator it_SetNode;
    it_SetNode = Q.begin();

    Q.insert(setNode{std::make_pair(100.0,0)});
    Q.insert(setNode{std::make_pair(100.0,10)});
    Q.insert(setNode{std::make_pair(100.0,1)});
    Q.insert(setNode{std::make_pair(100.0,15)});
    Q.insert(setNode{std::make_pair(100.0,7)});
    Q.insert(setNode{std::make_pair(100.0,9)});
    Q.insert(setNode{std::make_pair(100.0,11)});

    for (auto x:Q) {
        std::cout << "X:" << x.data.first << "   Y:" << x.data.second << std::endl;
    }
    return 0;
}


Expected output:
X:100   Y:15
X:100   Y:11
X:100   Y:7
X:100   Y:9
X:100   Y:10
X:100   Y:1
X:100   Y:0

그러나 그주는 :

X:100   Y:15
X:100   Y:7
X:100   Y:10
X:100   Y:1
X:100   Y:0
Sam Varshavchik

이진수로 된 숫자 7과 11은 모두 동일한 수의 1 비트 (4 + 2 + 1 및 8 + 2 + 1)를 갖습니다.

따라서 비교기는 {100.0,7} 및 {100.0,11})을 동일한 값으로 비교하고 std::set고유 한 값만 허용하고 이러한 값이 동일한 것으로 간주 되기 때문에 중복 값이 ​​집합에 삽입되지 않습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C #의 정렬 된 집합은 사용자 지정 개체에서 어떻게 작동합니까?

분류에서Dev

고급 사용자 정의 필드 : 누락 된 값

분류에서Dev

mutate_at를 사용하여 R의 누락 된 값이 누락되지 않은 경우 열 이름에서 얻은 값으로 대체

분류에서Dev

PowerPoint가 누락 된 사용자 지정 글꼴을 Calibri로 대체합니까?

분류에서Dev

누락 된 값을 'pivottabler'패키지의 문자로 대체

분류에서Dev

벡터의 누락 된 값을 R에서 누락되지 않은 마지막 값으로 대체

분류에서Dev

DataTables가 Shiny에서 누락 된 값을 표시하는 방법 사용자 지정

분류에서Dev

누락 된 정보로 사용자 지정 개체 생성 파일 직렬화

분류에서Dev

사용자 지정 RelativeLayout 내에서 누락 된 뷰

분류에서Dev

C #의 선택된 목록 상자에 사용자 지정 개체 추가

분류에서Dev

감정 분류에서 누락 된 값

분류에서Dev

설치된 deb 패키지에 누락 된 파일 (사용자 정의 된 dockerized debian)

분류에서Dev

일련의 숫자에서 누락 된 정수를 찾는 C 프로그램

분류에서Dev

두 개의 JSON 객체를 비교하고 자바 스크립트를 사용하여 누락 된 값 찾기

분류에서Dev

사용자 및 누락 된 값 찾기

분류에서Dev

df 자체를 사용하여 R 데이터 프레임에서 누락 된 값 채우기

분류에서Dev

Pandas Dataframe의 정렬 된 열에서 누락 된 숫자 찾기

분류에서Dev

mlr에서 "학습자 매개 변수 누락에 대한 기본값으로 사용 된 NA"경고는 무엇을 의미합니까?

분류에서Dev

PHP 동적 숫자 배열은 범위로 정의 된 누락 된 값을 추가합니다.

분류에서Dev

누락 된 값을 처리하기 위해 porc freq를 사용자 정의하는 방법

분류에서Dev

SQL에서 지정된 값으로 세 번째 테이블에서 누락 된 제품의 ID 추출

분류에서Dev

Ormlite에서 사용자 지정 개체의 값 튜플 반환

분류에서Dev

Karate-누락 된 키가있는 개체가 거의없는 값에 대해 2 개의 JSON 개체 일치

분류에서Dev

문자열의 부분 집합에 따라 조건부로 누락 된 값 채우기

분류에서Dev

tidyverse를 사용하여 그룹화 된 데이터에서 누락 된 값을 비값으로 대체

분류에서Dev

postgresql의 Union에서 누락 된 사용자 레코드 삽입

분류에서Dev

누락 된 값 정보 및 범주 수가 포함 된 사용자 지정 spss 테이블

분류에서Dev

Pandas에서 정확히 24 간격 전의 값으로 누락 된 용어를 채우는 방법

분류에서Dev

누락 된 사용자 정의 to_string ()의 컴파일 시간 감지

Related 관련 기사

  1. 1

    C #의 정렬 된 집합은 사용자 지정 개체에서 어떻게 작동합니까?

  2. 2

    고급 사용자 정의 필드 : 누락 된 값

  3. 3

    mutate_at를 사용하여 R의 누락 된 값이 누락되지 않은 경우 열 이름에서 얻은 값으로 대체

  4. 4

    PowerPoint가 누락 된 사용자 지정 글꼴을 Calibri로 대체합니까?

  5. 5

    누락 된 값을 'pivottabler'패키지의 문자로 대체

  6. 6

    벡터의 누락 된 값을 R에서 누락되지 않은 마지막 값으로 대체

  7. 7

    DataTables가 Shiny에서 누락 된 값을 표시하는 방법 사용자 지정

  8. 8

    누락 된 정보로 사용자 지정 개체 생성 파일 직렬화

  9. 9

    사용자 지정 RelativeLayout 내에서 누락 된 뷰

  10. 10

    C #의 선택된 목록 상자에 사용자 지정 개체 추가

  11. 11

    감정 분류에서 누락 된 값

  12. 12

    설치된 deb 패키지에 누락 된 파일 (사용자 정의 된 dockerized debian)

  13. 13

    일련의 숫자에서 누락 된 정수를 찾는 C 프로그램

  14. 14

    두 개의 JSON 객체를 비교하고 자바 스크립트를 사용하여 누락 된 값 찾기

  15. 15

    사용자 및 누락 된 값 찾기

  16. 16

    df 자체를 사용하여 R 데이터 프레임에서 누락 된 값 채우기

  17. 17

    Pandas Dataframe의 정렬 된 열에서 누락 된 숫자 찾기

  18. 18

    mlr에서 "학습자 매개 변수 누락에 대한 기본값으로 사용 된 NA"경고는 무엇을 의미합니까?

  19. 19

    PHP 동적 숫자 배열은 범위로 정의 된 누락 된 값을 추가합니다.

  20. 20

    누락 된 값을 처리하기 위해 porc freq를 사용자 정의하는 방법

  21. 21

    SQL에서 지정된 값으로 세 번째 테이블에서 누락 된 제품의 ID 추출

  22. 22

    Ormlite에서 사용자 지정 개체의 값 튜플 반환

  23. 23

    Karate-누락 된 키가있는 개체가 거의없는 값에 대해 2 개의 JSON 개체 일치

  24. 24

    문자열의 부분 집합에 따라 조건부로 누락 된 값 채우기

  25. 25

    tidyverse를 사용하여 그룹화 된 데이터에서 누락 된 값을 비값으로 대체

  26. 26

    postgresql의 Union에서 누락 된 사용자 레코드 삽입

  27. 27

    누락 된 값 정보 및 범주 수가 포함 된 사용자 지정 spss 테이블

  28. 28

    Pandas에서 정확히 24 간격 전의 값으로 누락 된 용어를 채우는 방법

  29. 29

    누락 된 사용자 정의 to_string ()의 컴파일 시간 감지

뜨겁다태그

보관