이기종 의미에서 투명 비교기 및 고유하지 않은 요소로 매핑 또는 설정

토밀 로프 아나톨리

고유 요소의 주어진 std::set< T, less >또는 std::map< T, less >컨테이너. less이기종 비교기입니다. 즉, 다른 유형 U의 값을 type 값과 비교할 수 있습니다 T. type의 모든 값 T이 고유 한 반면 type의 T특정 값과 동일하게 비교 되는 type 값이 많이있을 수 있습니다 U. 정의되지 않은 동작입니까?

컨테이너에서 type 값에 해당하는 키가있는 (하나) 요소를 찾고 싶습니다 U. 어느 하나 : 첫 번째, 마지막 또는 중간에 둘 이상이있는 경우. 컨테이너 u에는 type 의 값 동일한 요소가 하나 이상 있다는 것을 알고 U있습니다. 사용 std::set::find하거나 사용할 수 있습니까 std::map::find? 그것이 행동을 정의되지 ?

예 (여기에서는 허용 오차와의 부정확 한 비교 0.2) :

#include <set>
#include <iostream>

double const eps = 0.2;

struct less
{
    bool operator () (double l, double r) const { return l < r; }
    using is_transparent = void;
    bool operator () (int l, double r) const { return l + eps < r; }
    bool operator () (double l, int r) const { return l + eps < r; }
};

int main()
{
    std::set< double, less > s{0.0, 0.9, 1.0, 1.1, 2.0};
    for (auto it = s.find(1); it != std::end(s); it = s.find(1)) {
        std::cout << *it << ' ';
        s.erase(it);
    }
}

출력 (일반적으로 지정되지 않은 주문) :

0.9 1 1.1

위와 같이 고유 요소의 연관 정렬 컨테이너를 사용하는 것이 UB입니까?

대신 std::multisetand std::multimap사용해야합니까 ?

TC

연관 컨테이너 요구 사항 테이블 앞의 설명 텍스트는 다음과 같습니다.

kl값은하다 a[ SIC ] 분할에 대해 ([alg.sorting]) c(r, kl)으로 r의 키 값 eea; 에 대해 분할 ku되는 값입니다 . 이러한 값 에 대하여 분할 함께 암시는 .a!c(ku, r)keac(r, ke)!c(ke, r)c(r, ke)!c(ke, r)

그런 다음 a_tran.{find,count,equal_range}(ke), a_tran.lower_bound(kl)의 동작을 설명합니다 a_tran.upper_bound(ku). 따라서 요구 사항은 다음과 같습니다.

  • 를 들어 find, countequal_range:
    • 용기 내의 요소에 대해 분배되어야 c(r, ke)하고!c(ke, r)
    • c(r, ke) 암시해야한다 !c(ke, r)
  • 의 경우 lower_bound컨테이너의 요소는에 대해 분할되어야합니다 c(r, kl).
  • 의 경우 upper_bound컨테이너의 요소는에 대해 분할되어야합니다 !c(ku, r).

이러한 요구 사항을 충족한다면 컨테이너의 여러 키에 해당하는 항목으로 이기종 조회를 사용하는 데 아무런 문제가 없습니다. 결국 원래 제안 에서 동기를 부여하는 예는 이름이 "Smith"인 모든 사람을 찾는 것 set입니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

만약 angel에서 이미지 구성 요소의 크기를 설정하고 가로 세로 비율을 유지하는 방법

분류에서Dev

PHP에서 투명도로 PNG 이미지를 최소화하고 크기를 조정하는 방법

분류에서Dev

어떻게 종류의 비교 및 비교기 인터페이스를 사용하지 않고지도로? 어떻게 사용자 정의 정렬을 작성하는?

분류에서Dev

가로 세로 비율을 유지하면서 4 개의 제약 조건과 너비 또는 높이 매개 변수없이 이미지보기에 맞게 이미지 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

두 개의 정렬되지 않은 목록을 비교하고 pyspark에서 일치하지 않는 요소 찾기

분류에서Dev

i3에서 터미널을 투명하게 만드는 방법은 무엇입니까? (기본 설정 탭이 작동하지 않음)

분류에서Dev

C ++ 17에서 전체 주문이 아닌 비교기를 사용할 때에도 감소하지 않는 것은 반드시 정렬을 의미합니까?

분류에서Dev

도달 할 수없는 할당되지 않은 공간 : 파티션 크기 조정 및 이동 또는 새로운 우분투 설치?

분류에서Dev

vscode에서 자바 스크립트에 대한 바로 가기의 특정 유형은 무엇이라고? 전체 목록을 보려면 여기서 더 중요한 것은 (이미지 참조) 및 / 또는?

분류에서Dev

우분투에서 FTP의 '인증'설정이 매우 안전하지 않은 이유는 무엇입니까?

분류에서Dev

iOS의 이미지에서 투명하지 않은 채워진 CGRect 찾기

분류에서Dev

채우기 슬롯 또는 매크로 정의 요소 외부에서 정의 된 변수가이 요소 내부에서 보이지 않는 이유는 무엇입니까?

분류에서Dev

C ++의 집합에 고유 한 요소를 삽입하는 사용자 지정 비교기

분류에서Dev

보안 센터 설정 및 디지털 서명에도 불구하고 Outlook 2010의 VBA 매크로가 갑자기 비활성화됩니까?

분류에서Dev

작동하지 않는 목록에서 고유하지 않은 요소 찾기

분류에서Dev

이미지의 투명하지 않은 부분을 색상으로 채우기

분류에서Dev

각 요소를 명시 적으로 반복하지 않고 두 목록 및 사전의 요소 비교

분류에서Dev

목표 : 두 개의 이름을 두 배로 늘리지 않고 무작위 화 문제 : 컬렉션 및 / 또는 배열 비교 및 쓰기 (워크 시트에)

분류에서Dev

개체가 속성 또는 메서드를 지원하지 않거나 정의되지 않은 또는 null 참조의 '오버플로'속성을 설정할 수 없기 때문에 IE 개발 및 빌드가 nuxt JS로 실패합니다.

분류에서Dev

iOS 용 C #에서 고정 된 배경 이미지 위에 색상의 투명도 수준을 설정하는 방법은 무엇입니까?

분류에서Dev

';' 예상했다. Android Studio의 슬라이드 쇼에서 제목, 설명 및 이미지를 추가하는 동안 예기치 않은 토큰

분류에서Dev

나머지 매개 변수를 명시 적으로 지정하지 않고 기본 템플릿 비 유형 매개 변수 설정

분류에서Dev

NHibernate로 서명되지 않은 데이터 유형을 올바르게 매핑하는 방법

분류에서Dev

Inkscape에서 "채우기"및 "획"불투명도를 개별적으로 설정

분류에서Dev

인접 열의 비어 있지 않은 셀을 기반으로 범위를 설정하는 매크로

분류에서Dev

종횡비를 유지하고 이미지를 중앙에 배치하는 QPixmap의 크기를 조정하는 방법은 무엇입니까?

분류에서Dev

정렬되지 않은 배열로 구현 된 우선 순위 대기열의 최소 찾기 작업이 복잡성 = O (1) 만 취하는 이유는 무엇입니까? <스티븐 스키 나의 알고리즘 설계 매뉴얼>

분류에서Dev

열린 CV로 출력 이미지를 잡기 위해 투명한 배경을 설정하는 방법은 무엇입니까?

분류에서Dev

CSS 및 BootStrap으로 다른 <div> 요소를 기반으로 <div> 요소의 위치를 설정하는 방법

Related 관련 기사

  1. 1

    만약 angel에서 이미지 구성 요소의 크기를 설정하고 가로 세로 비율을 유지하는 방법

  2. 2

    PHP에서 투명도로 PNG 이미지를 최소화하고 크기를 조정하는 방법

  3. 3

    어떻게 종류의 비교 및 비교기 인터페이스를 사용하지 않고지도로? 어떻게 사용자 정의 정렬을 작성하는?

  4. 4

    가로 세로 비율을 유지하면서 4 개의 제약 조건과 너비 또는 높이 매개 변수없이 이미지보기에 맞게 이미지 크기를 조정하는 방법은 무엇입니까?

  5. 5

    두 개의 정렬되지 않은 목록을 비교하고 pyspark에서 일치하지 않는 요소 찾기

  6. 6

    i3에서 터미널을 투명하게 만드는 방법은 무엇입니까? (기본 설정 탭이 작동하지 않음)

  7. 7

    C ++ 17에서 전체 주문이 아닌 비교기를 사용할 때에도 감소하지 않는 것은 반드시 정렬을 의미합니까?

  8. 8

    도달 할 수없는 할당되지 않은 공간 : 파티션 크기 조정 및 이동 또는 새로운 우분투 설치?

  9. 9

    vscode에서 자바 스크립트에 대한 바로 가기의 특정 유형은 무엇이라고? 전체 목록을 보려면 여기서 더 중요한 것은 (이미지 참조) 및 / 또는?

  10. 10

    우분투에서 FTP의 '인증'설정이 매우 안전하지 않은 이유는 무엇입니까?

  11. 11

    iOS의 이미지에서 투명하지 않은 채워진 CGRect 찾기

  12. 12

    채우기 슬롯 또는 매크로 정의 요소 외부에서 정의 된 변수가이 요소 내부에서 보이지 않는 이유는 무엇입니까?

  13. 13

    C ++의 집합에 고유 한 요소를 삽입하는 사용자 지정 비교기

  14. 14

    보안 센터 설정 및 디지털 서명에도 불구하고 Outlook 2010의 VBA 매크로가 갑자기 비활성화됩니까?

  15. 15

    작동하지 않는 목록에서 고유하지 않은 요소 찾기

  16. 16

    이미지의 투명하지 않은 부분을 색상으로 채우기

  17. 17

    각 요소를 명시 적으로 반복하지 않고 두 목록 및 사전의 요소 비교

  18. 18

    목표 : 두 개의 이름을 두 배로 늘리지 않고 무작위 화 문제 : 컬렉션 및 / 또는 배열 비교 및 쓰기 (워크 시트에)

  19. 19

    개체가 속성 또는 메서드를 지원하지 않거나 정의되지 않은 또는 null 참조의 '오버플로'속성을 설정할 수 없기 때문에 IE 개발 및 빌드가 nuxt JS로 실패합니다.

  20. 20

    iOS 용 C #에서 고정 된 배경 이미지 위에 색상의 투명도 수준을 설정하는 방법은 무엇입니까?

  21. 21

    ';' 예상했다. Android Studio의 슬라이드 쇼에서 제목, 설명 및 이미지를 추가하는 동안 예기치 않은 토큰

  22. 22

    나머지 매개 변수를 명시 적으로 지정하지 않고 기본 템플릿 비 유형 매개 변수 설정

  23. 23

    NHibernate로 서명되지 않은 데이터 유형을 올바르게 매핑하는 방법

  24. 24

    Inkscape에서 "채우기"및 "획"불투명도를 개별적으로 설정

  25. 25

    인접 열의 비어 있지 않은 셀을 기반으로 범위를 설정하는 매크로

  26. 26

    종횡비를 유지하고 이미지를 중앙에 배치하는 QPixmap의 크기를 조정하는 방법은 무엇입니까?

  27. 27

    정렬되지 않은 배열로 구현 된 우선 순위 대기열의 최소 찾기 작업이 복잡성 = O (1) 만 취하는 이유는 무엇입니까? <스티븐 스키 나의 알고리즘 설계 매뉴얼>

  28. 28

    열린 CV로 출력 이미지를 잡기 위해 투명한 배경을 설정하는 방법은 무엇입니까?

  29. 29

    CSS 및 BootStrap으로 다른 <div> 요소를 기반으로 <div> 요소의 위치를 설정하는 방법

뜨겁다태그

보관