전제조건: 표준::지도 , 표준::순서가 없는_맵
효율성 측면에서 보면 맵과 순서가 지정되지 않은 맵 사이에는 큰 차이가 있습니다.
어느 것을 사용할지 결정하려면 두 가지 모두의 내부 작동을 알아야 합니다.
차이점 :
| map | unordered_map --------------------------------------------------------- Ordering | increasing order | no ordering | of keys(by default) | Implementation | Self balancing BST | Hash Table | like Red-Black Tree | search time | log(n) | O(1) ->평균 | | O(n) -> 최악의 경우 삽입 시간 | 로그(n) + 재조정 | 검색과 동일 삭제시간 | 로그(n) + 재조정 | 검색과 동일>
다음과 같은 경우에는 std::map을 사용하세요.
- 주문된 데이터가 필요합니다.
- 데이터를 정렬된 순서로 인쇄/액세스해야 합니다.
- 요소의 선행/후속 요소가 필요합니다.
- 더 많은 사례를 보려면 해시 테이블에 비해 BST의 장점을 참조하세요.
CPP
자바 안녕하세요 세계 예제
// CPP program to demonstrate use of std::map> #include> int> main()> {> >// Ordered map> >std::map<>int>,>int>>주문;> >// Mapping values to keys> >order[5] = 10;> >order[3] = 500;> >order[20] = 100;> >order[1] = 1;> >// Iterating the map and> >// printing ordered values> >for> (>auto> i = order.begin(); i> >!= order.end(); i++) {> >std::cout << ' : ' '
'; } }> |
int를 문자열 java로 캐스팅
>
>
암리타 라오 배우산출
1 : 1 3 : 500 5 : 10 20 : 100>
다음과 같은 경우에는 std::unordered_map을 사용하세요.
- 일부 데이터(예: 문자열)의 수를 유지해야 하며 순서가 필요하지 않습니다.
- 단일 요소 액세스, 즉 순회가 필요하지 않습니다.
CPP
// CPP program to demonstrate use of> // std::unordered_map> #include> int> main()> {> >// Unordered map> >std::unordered_map<>int>,>int>>주문;> >// Mapping values to keys> >order[5] = 10;> >order[3] = 500;> >order[20] = 100;> >order[1] = 1;> >// Iterating the map and> >// printing unordered values> >for> (>auto> i = order.begin();> >i != order.end(); i++)> >{> >std::cout << ' : ' '
'; } }> |
무한 루프
>
>산출
1 : 1 20 : 100 3 : 500 5 : 10>
차이점을 표 형식으로 살펴보겠습니다.
| 지도 | 순서가 없는_지도 | |
| 1. | 맵은 #include 헤더 파일에 정의되어 있습니다. | unordered_map은 #include 헤더 파일에 정의되어 있습니다. |
| 2. | 에 의해 구현됩니다 레드 블랙 트리 . | 해시 테이블을 사용하여 구현됩니다. |
| 삼. | 느리다. | 그것은 빠릅니다. |
| 4. | 시간 복잡도 연산의 경우 O(log N)입니다. | 작업의 시간 복잡도는 O(1)입니다. |
| 5. | map은 키별로 정렬된 순서대로 요소를 키, 값 쌍으로 저장하는 데 사용됩니다. | unordered_map은 정렬되지 않은 순서로 요소를 키, 값 쌍으로 저장하는 데 사용됩니다. |