본문 바로가기

전체 보기178

Modern C++ : std::min, max, equal, any_of, all_of, none_of (98, 11, 17) std::min, max, equal, any, all, none 개요C++ 표준 라이브러리는 컨테이너의 원소를 검색하고 비교하는 데 유용한 다양한 알고리즘을 제공합니다. 이 문서에서는 특정 조건을 만족하는 원소를 찾거나, 두 범위를 비교하는 데 사용되는 std::min, std::max, std::equal, std::any_of, std::all_of, std::none_of 함수에 대해 설명합니다. C++ 버전별 주요 키워드 도입 시기C++98: std::min, std::max, std::min_element, std::max_element, std::equalC++11: std::any_of, std::all_of, std::none_ofC++17: 병렬 실행 정책(std::execution)을.. 2025. 9. 12.
Modern C++ : std::remove, std::sort, std::replace (98, 20) std::remove, std::sort, std::replace 개요C++ 표준 라이브러리에서 제공하는 std::remove, std::sort, std::replace 계열 함수들은 컨테이너의 원소를 정렬하거나, 특정 조건에 맞는 원소를 바꾸거나, 제거하는 데 사용되는 강력한 도구입니다. 이 함수들을 사용하면 복잡한 반복문 없이도 간결하고 효율적인 코드를 작성할 수 있습니다. C++ 버전별 주요 키워드 도입 시기C++98: std::sort, std::replace, std::replace_if, std::remove, std::remove_ifC++20: std::erase, std::erase_if (컨테이너용 비멤버 함수) 내용 설명std::sort: 지정된 범위의 원소들을 오름차순 또는 사용자.. 2025. 9. 11.
Modern C++ : std::transform & std::accumulate (98) std::transform & std::accumulate 개요std::transform과 std::accumulate는 C++ 표준 라이브러리의 및 헤더에 포함된 강력한 함수입니다. std::transform은 범위 내의 각 원소에 지정된 연산을 적용하고 그 결과를 다른 범위에 저장하는 데 사용됩니다. std::accumulate는 범위 내의 모든 원소를 합산하여 단일 값을 계산하는 데 사용됩니다. 이 함수들은 반복문을 직접 작성하는 것보다 코드를 더 간결하고 가독성 높게 만들어 줍니다. C++ 버전별 주요 키워드 도입 시기C++98: std::transform, std::accumulate가 도입되었습니다. 내용 설명std::transformstd::transform 함수는 두 가지 형태로 오버로.. 2025. 9. 10.
Modern C++ : std::generate, local static variables (98, 11, 14) std::generate, 지역 정적 변수 (Local Static Variables) 개요std::generate는 C++ 표준 라이브러리의 헤더에 포함된 함수로, 지정된 범위의 모든 요소에 특정 함수(제너레이터)를 호출하여 반환된 값을 채워 넣는 역할을 합니다. 이 과정에서 제너레이터 함수 내부에 지역 정적 변수(Local Static Variables)를 활용하면, 함수 호출 간에 상태를 유지해야 하는 경우 매우 유용합니다.본 문서에서는 std::generate를 사용하여 벡터를 임의의 값으로 채우는 예제를 통해, 제너레이터 함수 내에서 지역 정적 변수가 어떻게 상태를 보존하고 효율적인 코드 작성에 기여하는지 설명합니다. C++ 버전별 주요 키워드 도입 시기C++98: std::generate, .. 2025. 9. 9.
Modern C++ : Lambda Expressions (11, 14, 17, 20) Lambda Expressions 개요C++ 람다 표현식은 이름 없는 함수 객체를 간결하게 생성할 수 있는 기능입니다. 람다는 코드 내에서 인라인으로 함수 객체를 정의할 수 있게 해주며, 특히 알고리즘과 함께 사용할 때 유용합니다. C++ 버전별 주요 키워드 도입 시기C++11: 기본 람다 표현식 도입C++14: 일반화된 람다 캡처, 반환 타입 추론 개선C++17: constexpr 람다, *this 캡처C++20: 템플릿 람다, [=, this] 명시적 캡처 경고 제거 내용 설명기본 구문[캡처](매개변수) -> 반환타입 { 함수 본문 }캡처 모드[=]: 값으로 모든 외부 변수 캡처[&]: 참조로 모든 외부 변수 캡처[a, &b]: 특정 변수만 명시적으로 캡처 (a는 값으로, b는 참조로)[this]: .. 2025. 9. 8.
Modern C++ : std::numeric_limits (98, 11, 17) 수치 한계와 특성 (Numeric Limits with std::numeric_limits) 개요std::numeric_limits는 C++ 표준 라이브러리의 헤더에 정의된 템플릿 클래스로, 기본 숫자 타입들의 속성과 한계를 조회하는 데 사용됩니다. 이 클래스를 통해 타입의 최대값, 최소값, 정밀도 등 다양한 수치적 특성을 컴파일 타임에 얻을 수 있습니다. C++ 버전별 주요 키워드 도입 시기C++98: 기본 std::numeric_limits 템플릿 클래스 도입C++11: lowest(), max_digits10 등 추가 멤버 함수 도입C++17: is_iec559를 통한 IEEE 754 부동소수점 준수 여부 확인 내용 설명1. 기본 사용법std::numeric_limits는 템플릿 클래스로, 특정 .. 2025. 9. 7.
Modern C++ : std::chrono 날짜 및 시간대 (11, 14, 17, 20) 날짜 및 시간대 (Date and Timezone with std::chrono) 개요C++20의 std::chrono 라이브러리는 강력한 날짜 및 시간대 처리를 위한 기능을 제공합니다. 이 문서에서는 날짜 리터럴, 캘린더 연산, 시간대 변환 등에 대해 설명합니다. C++ 버전별 주요 키워드 도입 시기C++11: 기본적인 std::chrono 기능 (시간 측정 중심)C++14: 사용자 정의 리터럴 지원 (h, min, s, ms, us, ns)C++17: 파일 시스템 시간 처리 개선C++20: 캘린더 및 시간대 지원 (std::chrono::year, month, day, time_zone 등) 내용 설명1. 날짜 표현year, month, day 클래스를 사용하여 타입 안전한 날짜 표현날짜 리터럴: 2.. 2025. 9. 6.
Modern C++ : std::chrono 시간 측정 (11, 14, 17, 20) 시간 측정 (Time Measurement with std::chrono) 개요std::chrono는 C++11에서 도입된 시간 관련 연산을 위한 라이브러리로, 정밀한 시간 측정, 시간 지연, 시간 간격 계산 등을 위한 다양한 유틸리티를 제공합니다. 이 라이브러리는 타입 안전성과 정밀한 시간 제어가 필요한 애플리케이션에 적합합니다. C++ 버전별 주요 키워드 도입 시기C++11: std::chrono 네임스페이스, std::chrono::duration, std::chrono::time_point, std::chrono::system_clock, std::chrono::steady_clock, std::chrono::high_resolution_clockC++14: 시간 리터럴 지원 (1s, 100ms .. 2025. 9. 5.
Modern C++ : std::mt19937 (11, 14, 17, 20) 랜덤 숫자 생성 (Random Number Generation) 개요C++에서의 랜덤 숫자 생성은 헤더를 통해 제공되는 다양한 유틸리티를 사용하여 구현할 수 있습니다. C++11부터 도입된 이 라이브러리는 예측 가능한 의사 난수 생성기와 다양한 분포를 제공합니다. C++ 버전별 주요 키워드 도입 시기C++11: 헤더, std::random_device, std::mt19937, std::uniform_int_distribution 등 도입C++14: std::make_unique를 사용한 랜덤 엔진 생성이 용이해짐C++17: std::sample 알고리즘 추가C++20: std::uniform_random_bit_generator 개념(concept) 도입 내용 설명C++에서 랜덤 숫자 생성을 위해서.. 2025. 9. 4.