코딩 모닥불
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기
  • 홈
  • 태그
  • 방명록
카테고리 없음

[C++] const 속성을 제거하는 mutable 키워드

const 멤버 함수와 mutableconst 멤버 함수는 함수 내에서 const 멤버 변수뿐만 아니라, 일반 멤버 변수의 값도 바꿀 수 없도록 제한을 건 클래스 멤버 함수입니다. [C++] 객체를 변경할 수 없는 const 멤버 함수const 멤버 함수C++에서는 기본 타입에 const 키워드를 붙여 값을 변경할 수 없는 변수를 정의할 수 있습니다. 그리고, 이러한 변수는 값을 변경할 수 없으므로, 정의할 때 반드시 초기화 과정을 거codingbonfire.tistory.com그래서, const 멤버 함수 내에서는, 멤버 변수의 값을 수정할 가능성이 있는, 일반 멤버 함수도 사용할 수 없습니다. 하지만, 경우에 따라 멤버 변수의 값을 변경하는 것이 필요한 때가 있습니다. 그때 사용할 수 있는 키워드가 ..

2025. 3. 20.
카테고리 없음

[C++] 호출 가능한 객체를 저장하는 std::function

std::function 객체C++ 표준 라이브러리에서 제공하는 std::function 객체는 C++의 호출 가능한 모든 객체들( callable )을 저장하고 실행하는 객체입니다. 그리고, 여기서 말하는 callable은 () 연산자를 호출할 수 있는 객체를 말합니다. 예를 들어, 함수( function )는 함수명을 피연산자로 하는 () 연산자를 사용해서 호출할 수 있습니다. 그래서, callable이라고 할 수 있습니다.int normal_func( int a, int b){ // 일반 함수 return a + b;}int main(){ int sum = normal_func( 3, 5 ); // callable} ● operator()를 구현한 함수 객체( function objec..

2025. 3. 17.
카테고리 없음

[C++] 간단한 함수 객체를 정의하기 위한 람다 표현식( lamda expression )

람다 표현식( lamda expression )줄여서 람다( lamda )라고도 하는 람다 표현식은 익명의 함수 객체를 정의하고 사용하기 위한 표기법입니다. 이 표현식은 간단한 기능을 구현하는데, 너무 많은 손이 가는 것을 막고자 하는 목적으로 C++11부터 도입되었습니다. 다음의 예제는 std::vector의 원소들을 특정 값에 더하는 간단한 코드입니다.#include #include #include using namespace std;int sum = 0; // 전역 변수void add_func(int val){ sum += val;}int main(){ vector vec = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; for_each( vec.begin(), vec.en..

2025. 3. 13.
카테고리 없음

[C++] 함수 객체( function object, functor ) : operator()를 구현한 타입

함수 객체( function object )함수 객체( function object )는 operator() 함수를 구현한 타입( type )을 말합니다. C++ 표준 라이브러리에서는, 펑터( functor )라고도 불리는, 이 타입을 주로 컨테이너나 알고리즘의 정렬 기준이 필요할 때 사용합니다. 다음 예제에서는 이러한 함수 객체를 사용하는 법을 볼 수 있습니다.class FuncObj{ public: int operator()(int a, int b){ // 이 연산자를 구현한 타입이 함수 객체 return a + b; }};int Func(int a, int b){ // 일반 함수 return a + b;}int main(){ FuncObj func; // 함수 ..

2025. 3. 13.
카테고리 없음

[C++] 주어진 원소들에 함수를 적용하는 std::for_each

std::for_each 사용법std::for_each는 주어진 구간 내에 있는 원소들에 대하여 지정한 함수 객체를 적용하는 함수입니다. 이 함수를 사용하려면 다음의 헤더를 포함해야 합니다.#include 함수의 정의는 다음과 같습니다.templateFunction for_each( InputIterator first, InputIterator last, Function func);여기서 func는 매개 변수가 하나인 함수 객체입니다. 그리고, 이 함수는 종료 시, func의 복사복을 반환합니다. ( 이것은 아래에서 다시 설명합니다. ) 다음은 람다( lamda ) 함수를 std::for_each 함수에 지정하여, 원소들의 총합을 구하는 예문입니다.int main(){ vector ..

2025. 3. 12.
카테고리 없음

[C++] 입력된 원소들을 차례로 변환하는 std::transform

std::transform 기본 사용법std::transform은 지정된 함수 객체를 입력된 범위의 모든 원소들에게 적용하고, 그 결과를 대상 범위에 출력하는 함수입니다. 이 함수를 사용하려면 먼저 다음 헤더를 포함해야 합니다.#include 이 함수의 정의는 다음과 같습니다.templateOutputIterator transform( InputIterator first1, InputIterator last1, OutputIterator result, UnaryFunction func );여기서, func는 입력된 범위의 원소를 인자로 전달로 받는 함수 객체입니다. 이 func 함수 객체는, UnaryFunction 이름이 말하듯이, 오직 1개의 매개 변수만을 가져야 합니다. 그리고..

2025. 3. 11.
  • «
  • 1
  • »

전체 카테고리

  • 분류 전체보기

블로그 인기글

태그

  • #동적 계획법
  • #Enum
  • #const
  • #포인터
  • #복사 생성자
  • #전처리기
  • #inline
  • #함수 객체
  • #using
  • #초기화
  • #Lamda
  • #헤더 가드
  • #std::sort
  • #전방 선언
  • #std::string_view
  • #소멸자
  • #static_cast
  • #decltype
  • #std::stack
  • #깊이 우선 탐색
  • #std::unique_ptr
  • #std::vector
  • #예외 처리
  • #std::queue
  • #범위 기반 for
  • #constexpr
  • #이진 탐색
  • #auto
  • #namespace
  • #상수 표현식
MORE
애드센스 광고 영역
Powered by Privatenote Copyright © 코딩 모닥불 All rights reserved. TistoryWhaleSkin3.4

티스토리툴바