Make Unreal REAL.
article thumbnail

 

 

How to get the last element of an std::unordered_map?

How to get the last element of an std::unordered_map? myMap.rbegin() and --myMap.end() are not possible.

stackoverflow.com

unordered_map은 역순회가 불가능하므로, 다음과 같이 사용할 수 없다.

  • 특이하게도 MSVC에서는 되는데, GCC에서는 작동하지 않는다.

 

void func()
{
    unordered_map<string, int> umap {{"A", 1}, {"B", 2}, {"C", 3}};
    
    // 런타임 오류 발생 ! !
    auto it = prev(umap.end());
    it = umap.end() - 1;
}

 

그러므로 해시 테이블을 사용하는데 마지막 원소를 가져와야하는 경우라면, 어쩔 수 없이 map을 사용해야 한다.

 

void func()
{
    map<string, int> mp {{"A", 1}, {"B", 2}, {"C", 3}};
    
    auto it = mp.rbegin();
}

'자료구조 & 알고리즘 > 기타' 카테고리의 다른 글

unordered_set의 입력 순서 유지  (0) 2023.04.20
비트셋을 벡터로 변환  (0) 2023.04.16
내적 계산  (0) 2023.04.02
증가하는 시퀀스로 값 채우기  (0) 2023.03.31
set.insert()의 반환 값  (0) 2023.03.23
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그