728x90 반응형 프로그래밍/C++11 C++ std::copy_if std::copy_if는 C++ STL의 알고리즘 중 하나로, 조건에 따라 컨테이너에서 원소를 복사하는 함수입니다. std::copy_if의 선언은 다음과 같습니다. template OutputIt copy_if(InputIt first, InputIt last, OutputIt d_first, UnaryPredicate pred); 위의 함수 시그니처에서 각 매개변수의 의미는 다음과 같습니다. first, last: 복사할 원소들의 범위를 지정하는 반복자 d_first: 복사된 원소들을 저장할 출력 컨테이너의 시작 위치를 지정하는 반복자 pred: 각 원소에 대해 조건을 검사할 함수 객체 std::copy_if 함수는 first와 last 사이의 범위를 순회하면서 pred 함수 객체가 true를 반환하.. 2023. 3. 2. C++ std::remove_if remove_if는 C++ STL에서 제공하는 알고리즘 함수 중 하나로, 주어진 조건에 해당하는 요소를 컨테이너에서 제거하는 함수입니다. remove_if 함수는 다음과 같은 형태로 선언됩니다. template ForwardIt remove_if(ForwardIt first, ForwardIt last, UnaryPredicate p); ForwardIt : 컨테이너의 요소들을 가리키는 반복자 타입 UnaryPredicate : 제거할 요소를 판별하는 조건 함수. 이 함수는 컨테이너의 요소를 받아 bool 값을 반환해야 합니다. first, last : 제거할 요소들을 담고 있는 범위를 나타내는 반복자. 이 범위는 [first, last) 로 지정합니다. 즉, first는 범위에 포함되고, last는 범.. 2023. 3. 2. C++ 쓰레드(thread) C++11부터는 멀티스레드 프로그래밍을 지원하는 thread 라이브러리를 제공합니다. 이 라이브러리를 사용하여 여러 개의 스레드를 생성하고 동시에 실행할 수 있습니다. 스레드 생성 C++의 thread 라이브러리를 사용하여 스레드를 생성하는 방법은 다음과 같습니다. #include void thread_function() { // 스레드에서 실행할 작업 } int main() { std::thread t(thread_function); // 스레드 실행 중 t.join(); // 스레드 종료 return 0; } 위 코드에서는 thread_function 함수를 스레드에서 실행하는 스레드 객체 t를 생성합니다. thread 객체를 생성할 때 인자로 스레드에서 실행할 함수를 전달합니다. 생성된 t 객체를 .. 2023. 2. 21. C++ transform C++의 transform 함수는 STL (Standard Template Library)의 알고리즘 중 하나로, 컨테이너의 각 요소에 대해 특정한 연산을 수행하고 그 결과를 다른 컨테이너에 저장하는 함수입니다. 다음은 transform 함수의 일반적인 형태입니다. template OutputIt transform(InputIt first1, InputIt last1, OutputIt d_first, UnaryOperation unary_op); first1, last1: 입력 컨테이너의 시작과 끝을 가리키는 반복자입니다. d_first: 결과를 저장할 출력 컨테이너의 시작 위치를 가리키는 반복자입니다. unary_op: 컨테이너의 각 요소에 적용할 연산을 정의하는 함수 객체입니다. 예를 들어, 다음과 .. 2023. 2. 18. C++ Functor(함수 객체) C++에서 Functor(함수 객체)는 일반적인 함수 포인터와 달리 객체를 사용하여 함수를 나타냅니다. Functor를 사용하면 C++의 객체 지향 기능과 제네릭 프로그래밍 기능을 모두 활용할 수 있습니다. 이 글에서는 C++에서 Functor가 무엇이고 어떻게 사용하는지에 대해 자세히 알아보겠습니다. Functor란 무엇인가? Functor는 일반적으로 "함수 객체"라고도 불리며, 함수처럼 호출할 수 있는 객체입니다. 일반적인 함수와 달리, Functor는 상태(state)를 유지할 수 있으므로, 호출될 때마다 다른 결과를 생성할 수 있습니다. Functor는 C++에서 특별한 형태의 객체입니다. 이 객체는 일반적으로 함수 호출 연산자(operator())를 정의하여 함수 호출을 수행합니다. 따라서 F.. 2023. 2. 17. C++ std::sort std::sort는 C++의 STL(Standard Template Library)에서 제공하는 정렬 알고리즘입니다. std::sort 함수는 입력받은 시작 위치와 끝 위치 사이의 요소들을 정렬할 수 있습니다. 정렬은 오름차순으로 진행되며, 정렬 알고리즘은 기본적으로 쿼리 정렬(QuickSort)을 사용합니다. std::sort 함수는 아래와 같이 사용할 수 있습니다. #include #include int main() { std::vector v = {3, 1, 4, 1, 5, 9}; // v의 요소들을 오름차순으로 정렬 std::sort(v.begin(), v.end()); return 0; } std::sort 함수는 첫 번째 인자로 시작 위치를, 두 번째 인자로 끝 위치를 전달받습니다. 위 코드에.. 2023. 1. 4. C++ enum 열거형 C++에서 enum은 열거형(enumeration)을 정의하는 키워드입니다. 열거형은 상수들의 집합으로, 각 상수는 정수값을 갖게 됩니다. 열거형은 어떤 값이 유효한 값인지 제한하고 싶을 때 유용하게 사용됩니다. 예를 들어, 색상을 정의하는 열거형을 생각해보겠습니다. 색상은 기본적으로 Red, Green, Blue가 있겠죠. 이런 상수들을 정의하고 싶다면 아래와 같이 정의할 수 있습니다. enum Color { Red, Green, Blue }; 위 코드에서 Red는 정수값 0을, Green은 정수값 1을, Blue는 정수값 2를 갖게 됩니다. 열거형의 상수들은 자동으로 정수값을 갖게 되는데, 첫 번째 상수는 0부터 시작해서 순서대로 정수값을 갖게 됩니다. 열거형에서 상수값을 수동으로 지정할 수도 있습니.. 2023. 1. 4. C++ std::begin, std::end, iterator std::begin, std::end, iterator 데이터 타입에 맞는 iterator를 리턴한다. 목차 begin end begin 처음 원소를 가르키는 iterator를 리턴한다. end 마지막 원소 다음을 가리키는 iterator를 리턴한다. 코드 #include #include #include using namespace std; int main() { vector v = { 1, 2, 3 }; cout 2022. 2. 19. C++ std::numeric_limits std::numeric_limits numeric_limits 클래스 탬플릿은 수치 타입의 다양한 속성을 표준화된 방법으로 질의하기 위한 방법을 제공한다. 목차 min max min 주어진 타입의 가장 작은 유한 값을 리턴한다. max 주어진 타입의 가장 큰 유한 값을 리턴한다. 코드 #include using namespace std; int main() { cout 2022. 2. 19. 이전 1 2 다음 728x90 반응형