Modern C++ : std::map (98, 11, 17, 20)
std::map 개요std::map은 C++ 표준 라이브러리의 연관 컨테이너로, 키-값 쌍을 저장하고 관리합니다. 이진 탐색 트리(BST) 기반으로 구현되어 있으며, 키를 기준으로 자동으로 정렬됩니다. 각 키는 유일해야 하며, 삽입/삭제/검색 연산이 O(log n)의 시간 복잡도를 가집니다. C++ 버전별 주요 키워드 도입 시기C++98: 기본 std::map 도입C++11: emplace, cbegin(), cend(), 범위 기반 for 루프 지원C++17: extract, insert_or_assign, try_emplace, merge 메서드 추가C++20: contains 메서드 추가 (C++20 이전에는 find와 end() 비교로 대체) 내용 설명std::map은 다음과 같은 주요 특징을 가..
2025. 8. 25.
Modern C++ : std::pair, std::tuple (98, 11, 17)
std::pair와 std::tuple 개요std::pair와 std::tuple은 C++ 표준 라이브러리에서 제공하는 유틸리티 클래스로, 여러 값을 하나의 단위로 묶어서 다룰 수 있게 해줍니다. 주로 함수에서 여러 값을 반환하거나, 여러 값을 한 번에 전달해야 할 때 유용하게 사용됩니다. C++ 버전별 주요 키워드 도입 시기std::pair: C++98/03부터 도입std::tuple: C++11에서 도입구조화된 바인딩(Structured Binding): C++17에서 도입 내용 설명std::pair두 개의 서로 다른 타입의 값을 하나의 단위로 저장할 수 있는 클래스 템플릿first와 second라는 두 개의 공개 멤버 변수를 가짐비교 연산자(==, !=, , , >, >=)가 오버로딩되어 있음 st..
2025. 8. 24.
Modern C++ : std::vector (98, 11, 14, 17, 20)
C++ std::vector 컨테이너 개요std::vector는 C++ 표준 라이브러리에서 제공하는 동적 배열 컨테이너로, 연속된 메모리 공간에 요소를 저장합니다. 자동으로 메모리를 관리하고 크기를 동적으로 조정할 수 있어 가장 널리 사용되는 컨테이너 중 하나입니다. 임의 접근이 가능하고, 끝에서의 삽입/삭제가 효율적입니다. C++ 버전별 주요 키워드 도입 시기C++98/03: 기본 std::vector 기능 도입C++11: 이동 생성자/대입 연산자, emplace_back(), shrink_to_fit()C++14: 일반화된 람다 캡처와 함께 사용 개선C++17: 구조적 바인딩과 함께 사용 개선, emplace_back()이 참조 반환C++20: std::span과의 호환성, std::ranges 지원..
2025. 8. 21.