블로그
-
C++ static 멤버 변수와 함수: 초기화 순서, 스레드 안전성, C++17 inline static
C++ static 멤버 변수·함수의 동작 원리를 싱글톤, 카운터, 설정 관리자, 팩토리 실전 예제로 정리합니다. 초기화 순서 함정, 스레드 안전성, C++17 inline static까지 다룹니다.
-
C++ queue와 stack: 컨테이너 어댑터 사용법과 BFS·DFS 활용
C++ STL의 stack·queue·priority_queue 사용법과 내부 동작 원리를 비교하고, DFS·BFS·작업 스케줄링 실전 예제와 커스텀 비교자 설정 등 흔한 컴파일 에러 해결법을 정리합니다.
-
C++ std::string 자주 쓰는 함수 정리: 검색·치환·분할과 흔한 실수, 성능 팁
C++ std::string 사용법 정리. 생성과 연결, find·substr·replace 같은 자주 쓰는 함수, 문자열 분할 같은 실전 예시, 자주 생기는 문제와 성능 최적화 팁을 예제로 다룹니다.
-
C++ std::vector 기초: 생성·삽입·삭제와 배열 대신 쓰는 이유
크기가 고정되고 범위 검사도 없는 C 배열 대신 std::vector를 쓰는 이유를 선언, 추가·삭제, operator[]와 at() 차이, 2차원 벡터, sort·find 예제로 보여줍니다. size()를 int로 받는 실수, 반복 중 삭제, reserve와 resize 혼동도 다룹니다.
-
C++20 stop_token·stop_source·stop_callback: jthread와 협력적 취소 구현
C++20 std::stop_token·stop_source·stop_callback과 std::jthread로 협력적 취소를 구현하는 방법입니다. 워커 루프, condition_variable_any 연동, 콜백 수명 주의점을 실전 코드와 함께 설명합니다.
-
C++ 스톱워치와 벤치마크 | chrono로 실행 시간 측정하기
외부 라이브러리 없이 <chrono>만으로 재사용 가능한 스톱워치 클래스와 스코프가 끝날 때 시간을 찍는 RAII 타이머를 만듭니다. 여러 번 측정해 평균·중앙값 등으로 해석하는 법, 컴파일러가 측정 대상 코드를 지워 버리는 문제를 막는 법도 다룹니다.
-
C++ Strategy 패턴: 다형성 vs 함수 포인터 vs 람다 vs std::function으로 알고리즘 교체하기
C++ Strategy 패턴으로 알고리즘을 캡슐화하고 런타임에 교체하는 방법. 다형성, 함수 포인터, 람다, std::function 네 가지 구현과 각각의 성능 특성, 압축 알고리즘 예제를 정리합니다.
-
C++ iostream 다루기: 포매팅 조작자, stringstream 파싱, cin 버퍼와 스트림 실패 상태
C++ iostream으로 콘솔·문자열·파일 입출력을 다루는 방법을 정리합니다. 포매팅 조작자, stringstream, CSV·설정 파일 파싱 실전 예제와 cin 버퍼·스트림 실패 상태 함정을 다룹니다.
-
C++17 구조적 바인딩: map·pair·tuple 분해와 auto&·const auto& 선택
auto [key, value] 한 줄로 map 요소, pair, tuple, 구조체를 이름 있는 변수로 푸는 C++17 구조적 바인딩을 다룹니다. auto&·const auto& 선택, insert 결과를 if 초기화문과 함께 받는 패턴, 커스텀 타입에 튜플 프로토콜을 붙이는 방법을 예제로 봅니다.
-
C++ 문법 선택 기준표: tuple, 구조적 바인딩, using, <=>, 사용자 정의 리터럴을 직접 실행해 고르기
코드 리뷰에서 자주 고민하는 tuple과 struct, auto와 auto&, typedef와 using, 삼원 비교, 초기화 캡처, size_t 같은 선택을 한 프로그램으로 실행해 확인했습니다. 각 선택의 결과와 자세한 글 링크를 표로 정리했습니다.