1. 개요std::negate는 C++11부터 도입된 표준 라이브러리의 일부이며, 함수형 프로그래밍 스타일을 지원하는 함수 객체(functor)이다. 단항 연산자로 입력된 값을 부정(negation)하는 역할을 한다. 즉, 입력된 값의 부호를 반대로 바꿔준다.2. 사용 예시#include #include // std::negateint main() { std::negate neg; // int 타입의 부정 함수 객체를 선언 int x = 10; int y = neg(x); // -x를 계산하여 y에 할당 std::cout 2.1. 결과 출력x = 10, y = -103. 참고사항3.1. 관련 문서https://en.cppreference.com/w/cpp/utility/functi..
1.개요std::vector는 동적 배열(dynamic array) 컨테이너이다. 요소들을 선형으로 저장하며, 인덱스를 통해 각 요소에 접근할 수 있다. 크기를 동적으로 조절할 수 있는 배열로, 메모리 내에 연속적으로 저장된다.2. 주요 멤버 함수push_back(): 벡터 끝에 요소를 추가한다.pop_back(): 벡터의 마지막 요소를 제거한다.size(): 벡터에 저장된 요소의 개수를 반환한다.begin(), end(): 벡터의 시작과 끝을 가리키는 반복자를 반환한다.resize(): 벡터의 크기를 조정한다.3. 참고 사항3.1. 비용메모리 할당 및 해제 비용이 추가될 수 있으므로, 성능 요구 사항을 고려하여 사용3.2. 관련 문서https://en.cppreference.com/w/cpp/conta..
1. 개요std::ranges::transform 함수는 C++20부터 도입된 범위 기반 알고리즘 중 하나로, 주어진 입력 범위의 각 요소에 대해 지정된 변환 작업을 수행하고, 변환된 요소들을 출력 범위에 저장한다.2. templatetemplate constexpr OutputRange transform(InputRange&& inputRange, OutputRange&& outputRange, UnaryOperation op);InputRange: 변환할 입력 범위로, 범위의 첫 번째 요소의 시작과 끝을 나타낸다.OutputRange: 변환된 요소들을 저장할 출력 범위로, 반드시 OutputIterator의 요구사항을 충족해야 한다.UnaryOperation: 각 요소에 적용할 단항 연산(함수 객체 ..
1. 람다(Lambda) 함수캡처를 통해 lambda 함수는 자신이 생성된 시점에서의 외부 변수의 값을 유지하거나 사용한다. 일반적으로 lambda 함수는 외부 변수에 대한 접근을 제한한다. lambda 함수 내에서 외부 변수에 접근하려면, 그 변수를 명시적으로 캡처해야 된다.2. [ ][]는 C++에서 람다(Lambda) 함수를 정의할 때 사용3. 캡처(Capture)3.1. 캡처(Capture)란?C++ 람다(Lambda) 함수에서 외부 변수를 내부로 가져오는 것을 말한다.3.2. 캡처(Capture) 위치대괄호([ ]) 안에 위치하며, 여기에 캡처할 변수를 지정한다.4. 사용예시[캡처위치(외부변수)](lambda 내부 변수){lambda 함수}
1. root/CMakeLists.txtcmake_minimum_required(VERSION 3.5) # 최대한 높은 버전 사용project(projectName VERSION 0.1.0) # 프로젝트 이름과 버전set(CMAKE_CXX_STANDARD 20) # C++ 표준 설정set(CMAKE_CXX_STANDARD_REQUIRED TRUE) # C++ 표준 준수를 필수로 설정# CPM.cmake settings# ------------------------------------------------------------------------------file( DOWNLOAD https://github.com/cpm-cmake/CPM.cmake/releases/download/v0.38.3/C..