[C++] STL 자료구조: Pair, Tuple
pair, tuple은 여러 개의 자료형을 묶어서 관리할 수 있게 해주는 편리한 자료형이다. 보통 2개의 자료형을 함께 다뤄야하면 pair를, 3개 이상을 다뤄야 하면 tuple을 사용한다. ##Pair 예시 1using pii = pair; //자주 사용하는 조합은 별칭으로 생성해도 된다.int main() { fastio; pii a; // a = { 0, 0 } pii b(1, 2); // b = { 1, 2 }; 2개가 쌍으로 pair c{ "HI", 3.14 }; // c = { "HI", 3.14 } cout first second cout vector v; v.push_back(a); v.push_back({ 3, 4 }); v.push_back(make_pair(5, 6)); fo..
2024. 5. 9.
[C++] STL 자료구조: unordered_set, unordered_map
- 이름에서 알 수 있듯이 내부 원소들이 정렬되어있지 않다는 점에서 unordered_set, unordered_map은 set, map과 차이점이 있다.- unordered_set, unordered_map은 내부적으로 hash table을 사용해 구현되어있다.hash table은 삽입, 삭제, 검색을 지원하며 hash table의 특징 상 연산의 시간복잡도는 평균 O(1), 최악의 경우 O(n)이다. 이는 BBST로 구현된 set, map의 연산이 O(logn)인 것과 비교했을 때 평균적으로 더 좋다.- 또한 unordered_set, unordered_map은 set, map과 마찬가지로 원소가 중복될 수 없다. 만약 중복된 원소를 사용하고 싶다면 unordered_multiset, unorder..
2024. 5. 9.