무순 세트에서 priority_queue를 초기화하는 가장 빠른 방법은 무엇입니까?

에머슨 수

우선 순위 대기열 , 옵션 (12)의 구성 에서 말합니다 .

template< class InputIt >
priority_queue( InputIt first, InputIt last,
                const Compare& compare = Compare(), 
                Container&& cont = Container() );

그러나 나는 이것을 어떻게 사용하는지 모른다. 비어 있지 않은 std::unordered_set<std::shared_ptr<MyStruct>> mySet이 있고 우선 순위 대기열로 변환하고 싶습니다. 또한 비교기 구조체를 만듭니다 MyComparator.

struct MyComparator {
  bool operator()(const std::shared_ptr<myStruct>& a, 
                  const std::shared_ptr<myStruct>& b){...}
};

이제 myQueue더 나은 방법으로 새 priority_queue 어떻게 구성 할 수 있습니까? 다음을 사용했고 작동합니다.

std::priority_queue<std::shared_ptr<MyStruct>, std::deque<std::shared_ptr<MyStruct>, MyComparator> 
    myQueue(mySet.begin(), mySet.end());

벡터와 deque를 모두 벤치마킹했는데 deque가 크기가 상대적으로 클 때 (~ 30K) 벡터보다 성능이 우수하다는 것을 알았습니다. 의 크기를 이미 알고 있으므로 해당 크기의 mySet데크를 만들어야합니다. 그러나 어떻게 내 자신의 비교기와 미리 정의 된 deque로이 priority_queue를 만들 수 myDeque있습니까?

존 즈 윙크

std::deque보다 나은 성능 제공 하는 것으로 이미 결정 했으므로 .NET Framework std::vector를 구성하는 방법과 관련하여 수행 할 수있는 작업이 많지 않다고 생각합니다 priority_queue. 이미 보셨 듯이 std::deque::reserve()방법 이 없으므로 미리 할당 된 메모리로 deque를 만드는 것은 불가능합니다. 대부분의 사용 사례에서 이것은 문제가되지 않습니다. 왜냐하면 deque 대 벡터의 주요 특징은 새로운 요소가 삽입 될 때 deque가 요소를 복사 할 필요가 없다는 것입니다.

여전히 원하는 성능을 얻지 못한 경우 원시 포인터를 저장하거나 (스마트 포인터를 외부에 유지) 단순히 unordered_map일반 포인터로 변경 map하고 컨테이너가 제공하는 순서에 의존하는 것을 고려할 수 있습니다 .

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C ++에서 클래스의 priority_queue를 초기화하는 방법은 무엇입니까?

분류에서Dev

ArrayList에서 요소의 순서를 변경하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

명령 줄에서 파일에 텍스트를 추가하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

C에서 인접한 두 바이트를 복사하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

루비 2.2.0에서 소수 i를 테스트하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

.net에서 직렬 포트를 읽는 가장 빠른 방법은 무엇입니까?

분류에서Dev

각 세트 비트의 연속 인덱스를 얻는 가장 빠른 방법은 무엇입니까?

분류에서Dev

큰 데이터 세트를 R로로드하는 가장 빠른 방법과 가장 빠른 형식은 무엇입니까?

분류에서Dev

초보자를위한 기본 REST / SOAP 서버 및 클라이언트를 구현하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

int에 맞는 가장 큰 피보나치 수를 찾는 가장 빠른 방법은 무엇입니까?

분류에서Dev

typedarray를 자바 스크립트의 배열에 복사하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

Amazon EC2에서 HTTP / 2 웹 서버를 설정하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

Java의 목록에서 가장 빠른 타임 스탬프를 정렬하는 방법은 무엇입니까?

분류에서Dev

C ++에서 픽셀 RGB 데이터를 조회하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

Big SQL 테이블에서 항목 수를 선택하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

주어진 날짜에서 일, 월, 연도를 추출하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

Eigen에서 X * X.transpose ()를 곱하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

루프에서 변수를 한 번만 선언하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

C에서 데이터를 구성하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

HDD에서 불량 섹터를 확인하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

DCOM에서 레코드를 전송하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

HBase에서 데이터를 추출하는 가장 빠른 방법은 무엇입니까

분류에서Dev

numpy 배열의 요소를 반복하고 액세스하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

벡터 요소를 홀수 순서로 수평으로 추가하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

모든 설정된 비트를 계산하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

DataTable의 데이터를 조건부로 업데이트하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

수정 된 Android 소스 코드를 테스트하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

스크립트를 실행하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

스크립트를 실행하는 가장 빠른 방법은 무엇입니까?

Related 관련 기사

  1. 1

    C ++에서 클래스의 priority_queue를 초기화하는 방법은 무엇입니까?

  2. 2

    ArrayList에서 요소의 순서를 변경하는 가장 빠른 방법은 무엇입니까?

  3. 3

    명령 줄에서 파일에 텍스트를 추가하는 가장 빠른 방법은 무엇입니까?

  4. 4

    C에서 인접한 두 바이트를 복사하는 가장 빠른 방법은 무엇입니까?

  5. 5

    루비 2.2.0에서 소수 i를 테스트하는 가장 빠른 방법은 무엇입니까?

  6. 6

    .net에서 직렬 포트를 읽는 가장 빠른 방법은 무엇입니까?

  7. 7

    각 세트 비트의 연속 인덱스를 얻는 가장 빠른 방법은 무엇입니까?

  8. 8

    큰 데이터 세트를 R로로드하는 가장 빠른 방법과 가장 빠른 형식은 무엇입니까?

  9. 9

    초보자를위한 기본 REST / SOAP 서버 및 클라이언트를 구현하는 가장 빠른 방법은 무엇입니까?

  10. 10

    int에 맞는 가장 큰 피보나치 수를 찾는 가장 빠른 방법은 무엇입니까?

  11. 11

    typedarray를 자바 스크립트의 배열에 복사하는 가장 빠른 방법은 무엇입니까?

  12. 12

    Amazon EC2에서 HTTP / 2 웹 서버를 설정하는 가장 빠른 방법은 무엇입니까?

  13. 13

    Java의 목록에서 가장 빠른 타임 스탬프를 정렬하는 방법은 무엇입니까?

  14. 14

    C ++에서 픽셀 RGB 데이터를 조회하는 가장 빠른 방법은 무엇입니까?

  15. 15

    Big SQL 테이블에서 항목 수를 선택하는 가장 빠른 방법은 무엇입니까?

  16. 16

    주어진 날짜에서 일, 월, 연도를 추출하는 가장 빠른 방법은 무엇입니까?

  17. 17

    Eigen에서 X * X.transpose ()를 곱하는 가장 빠른 방법은 무엇입니까?

  18. 18

    루프에서 변수를 한 번만 선언하는 가장 빠른 방법은 무엇입니까?

  19. 19

    C에서 데이터를 구성하는 가장 빠른 방법은 무엇입니까?

  20. 20

    HDD에서 불량 섹터를 확인하는 가장 빠른 방법은 무엇입니까?

  21. 21

    DCOM에서 레코드를 전송하는 가장 빠른 방법은 무엇입니까?

  22. 22

    HBase에서 데이터를 추출하는 가장 빠른 방법은 무엇입니까

  23. 23

    numpy 배열의 요소를 반복하고 액세스하는 가장 빠른 방법은 무엇입니까?

  24. 24

    벡터 요소를 홀수 순서로 수평으로 추가하는 가장 빠른 방법은 무엇입니까?

  25. 25

    모든 설정된 비트를 계산하는 가장 빠른 방법은 무엇입니까?

  26. 26

    DataTable의 데이터를 조건부로 업데이트하는 가장 빠른 방법은 무엇입니까?

  27. 27

    수정 된 Android 소스 코드를 테스트하는 가장 빠른 방법은 무엇입니까?

  28. 28

    스크립트를 실행하는 가장 빠른 방법은 무엇입니까?

  29. 29

    스크립트를 실행하는 가장 빠른 방법은 무엇입니까?

뜨겁다태그

보관