[Basic C++] #47_함수 객체 STL 알고리즘 중 "함수 객체"에 대해 알아보겠습니다. "전문가를 위한 C"의 17 항목, "STL 알고리즘 마스터하기"에 해당하는 내용입니다. Overview 개념 산술 함수 객체 비교 함수 객체 논리 함수 객체 구조체 오버로딩 람다 함수 객체 #0. 개념 1. 개념 함수 객체는 함수처럼 동작하는 객체를 의미합니다. C++에서는 주로 Predicate를 표현하거나, 콜백 함수로 활용합니다. 헤더에 정의된 여러 함수 객체 클래스들을 활용하여 "콜백" 작업을 수행할 수 있습니다. #1. 산술 함수 객체 1. 코드 #include #include #include #include using namespace std; int main() { vector v{ 1, 2, ..
[Basic C++] #44_람다 표현식, 기본 STL 알고리즘 중 "람다 표현식"에 대해 알아보겠습니다. "전문가를 위한 C"의 17 항목, "STL 알고리즘 마스터하기"에 해당하는 내용입니다. Overview 개념 syntax 캡처 블록 mutable #0. 개념 1. 람다 표현식? C++에서 제공하는 람다 표현식은 익명 함수를 인라인으로 정의합니다. #1. syntax, 문법 1. 기본 문법 [capture list] (parameter list) -> return type { function body } capture 블록 활용은 선택적입니다. 캡처 블록은 유효 범위 내 주변 변수들을 캡처하기 위해 사용합니다. 컴파일러가 자동으로 "->"와 "return type"를 연역합니다. 따라서, 생략해도..
[Basic C++] #42_unordered_multimap, 비순차 연관 컨테이너, 중복 허용 C++ 개발에서 "unordered_multimap"에 대해 알아보겠습니다. "전문가를 위한 C"의 16 항목, "컨테이너와 반복자 이해하기"에 해당하는 내용입니다. Overview 개념 #0. 개념 "unordered_multimap"은 알다시피 "unordered_map"에서 중복된 키의 항목 추가를 허용하는 버전입니다. 예외 사항은 이전에 공부했던 map과 multimap의 차이점과 동일합니다. 아래 링크를 올려두었습니다. unordered_multimap은 "operator []" 사용을 제한하고, "insert()"메서드의 반환 값이 pair 객체가 아니라 단순히 반복자라는 것입니다. 더불어, "e..
[Basic C++] #40_해시 함수, 비순차 연관 컨테이너, 해시 테이블 C++ 개발에서 "해시 함수"에 대해 알아보겠습니다. "전문가를 위한 C"의 16 항목, "컨테이너와 반복자 이해하기"에 해당하는 내용입니다. Overview 비순차 연관 컨테이너 해시 함수 해시 충돌, 해시 문제점 #0. 비순차 연관 컨테이너 C++의 STL(표준 라이브러리)의 비순차 연관 컨테이너는 해시 함수를 사용합니다. 비순차 연관 컨테이너에는 "unordered_map", "unordered_multimap", "unordered_set", 그리고 "unordered_multiset"이 있습니다. 이들은 모두 항목을 저장할 때, 정렬 작업을 수행하지 않습니다. #1. 해시 함수 해시 테이블을 구현하기 위해 "버킷(Buc..
[Basic C++] #39_multimap, 연관 컨테이너, 중복 허용 C++ 개발에서 표준 라이브러리(STL)의 "multimap"에 대해 알아보겠습니다. "전문가를 위한 C"의 16 항목, "컨테이너와 반복자 이해하기"에 해당하는 내용입니다. Overview 개념 반복자 #0. 개념 [Basic C++] #38_map, 연관 컨테이너 [Basic C++] #38_map, 연관 컨테이너 C++ 개발에서 표준 라이브러리(STL)의 "map"에 대해 알아보겠습니다. "전문가를 위한 C"의 16 항목, "컨테이너와 반복자 이해하기"에 해당하는 내용입니다. map, 연관 컨 webddevys.tistory.com multimap은 키 하나에 2개 이상의 항목을 가질 수 있습니다. 그리고 multimap은 m..
#1. 개념 1. map [정의] : C++의 STL에서 제공하는 map 컨테이너는 지정된 형식의 키와 데이터 값을 한 쌍으로 레드-블랙 트리 자료구조에 저장하는 연관 컨테이너입니다. [특징] : map 컨테이너는 오직 키를 통해 접근 가능합니다. 더불어, map 컨테이너는 내부적으로 정렬 작업을 수행하며, 기준은 오름차순입니다. [성능] : map 컨테이너의 탐색/삽입/삭제 작업은 모두 O(log n)의 시간 복잡도를 가집니다. [Basic C++] #1 Map, Unordered_map, 해쉬 테이블 [Basic C++] #1 Map, Unordered_map, 해쉬 테이블 자료구조 중 해쉬 테이블(Key-Value-Pair)과 C++ STL이 제공하는 컨테이너 "map" , 그리고 "unordred..
[Basic C++] #36_forward_list, 순차 컨테이너 C++ 개발에서 표준 라이브러리(STL)의 forward_list에 대해 알아보겠습니다. "전문가를 위한 C"의 16 항목, "컨테이너와 반복자 이해하기"에 해당하는 내용입니다. Overview 개념 자체 메서드 #0. 개념 "forward_list"는 단방향 링크라는 점만 제외하면 "list"와 비슷합니다. "forward_list"는 단방향 링크이기 때문에 "반복자"가 한쪽으로만 이동이 가능합니다. 특정 항목에 접근하려면 반드시 이전 항목에 선제적으로 접근해야합니다. "begin()" 메서드는 폐쇄형 범위만 지원하여 첫 항목을 바로 리턴하죠. 하지만, "forward_list"는 마지막 항목뿐만 아니라 시작 항목도 "개방형 범위"로 ..