[Effective C++] 2. 생성자, 소멸자 및 대입 연산자 [1/4]
컴파일러가 몰래 만들어내는 생성자, 소멸자, 대입 연산자의 동작과, 이들이 필요 없을 때 생성을 막는 방법을 정리했습니다.
컴파일러가 몰래 만들어내는 생성자, 소멸자, 대입 연산자의 동작과, 이들이 필요 없을 때 생성을 막는 방법을 정리했습니다.
const로 의미적 제약을 거는 방법과 객체를 쓰기 전에 반드시 초기화해야 하는 이유를 정리했습니다. C++23의 명시적 객체 매개변수도 함께 다룹니다.
C++를 여러 하위 언어의 연합체로 바라보는 관점과, #define 대신 const, enum, inline을 써야 하는 이유를 정리했습니다.
퀵, 힙, 삽입 정렬을 상황에 따라 전환하는 인트로 정렬의 동작 원리와, std::sort가 이를 채택한 이유를 정리했습니다.
동적 계획법을 쓸 수 있는 중복 부분 문제와 최적 부분 구조 조건, 그리고 분할 정복, 그리디와의 차이를 정리했습니다.
원소들의 집합 관계를 관리하는 유니온 파인드의 두 연산과, 경로 압축과 랭크 합치기로 성능을 높이는 방법을 정리했습니다.
한정된 용량의 배낭에 최대 가치를 담는 0/1 배낭 문제의 점화식과 동적 계획법 풀이를 정리했습니다.
두 개의 포인터를 이동시키며 부분 배열이나 합 조건을 효율적으로 처리하는 두 포인터 기법을 정리했습니다.
음수 간선이 있어도 최단 경로를 구할 수 있는 벨만 포드 알고리즘과 음수 사이클 감지, 개선판인 SPFA를 정리했습니다.
방향성을 어기지 않고 노드를 나열하는 위상 정렬의 원리와, 진입 차수를 이용한 구현 방법을 정리했습니다.