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

[C++] 여러 개의 값을 저장할 수 있는 std::tuple

std::tuple 사용법std::tuple은 여러 개의 값을 저장하는 데 쓰이는 C++ 표준 라이브러리의 유틸리티 클래스입니다. std::pair 클래스 같은 경우 2개의 값만을 저장할 수 있는데 반면, tuple은 저장할 수 있는 값의 개수에 제약이 없습니다. 그래서, 함수에 여러 개의 값들을 전달하거나, 함수로부터 반환받는 경우에 아주 유용합니다. 이 tuple 클래스를 사용하려면, 먼저 다음의 헤더 파일을 포함해야 합니다.#include 그리고, tuple 변수를 선언하려면 다음과 같이 합니다.#include // for std::tupleint main(){ tuple tup1(3.14); // direct initialization tuple tup2{ 2, 5..

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

[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++] 객체의 모든 원소를 순환하는 범위 기반 for 구문

범위 기반 for ( range-based for )범위 기반 for 루프는, C++11부터 도입된, 배열이나 컨테이너 같이 데이터의 연속을 나타내는 객체의 모든 멤버를 순환하는 구문입니다. 선언 방식은 다음과 같습니다.for ( 데이터_타입 변수명 : 배열 or 컨테이너 등 순환가능한 객체 ){}범위 기반 for 구문의 대상은 배열이나 컨테이너뿐 아니라, 데이터가 연속되어 있는 순환가능한 객체라면 대상이 될 수 있습니다. 예를 들어, std::string 문자열 안에 있는 모든 문자를 출력하는데도 이 구문을 사용할 수 있습니다. 그리고, 위에서 말하는 "데이터_타입"은 이러한 순환가능한 객체가 가진 멤버의 데이터 타입을 말합니다. 이 구문의 장점은 기존의 for 구문보다 알아보기 쉽고 짧은 코드를 만들..

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

[C++] 표현식의 구체적인 타입을 알려주는 decltype

decltype 키워드decltype는 이름이나 표현식의 구체적인 타입( declared type )을 알려주는 키워드입니다.이 키워드는 다음과 같은 규칙에 따라, 표현식의 타입을 반환합니다. ● 표현식이 식별자 또는 클래스 멤버를 가리키는 경우, decltype은 이 식별자 또는 클래스 멤버의 타입을 반환합니다.struct Point{ int x = 0; int y = 0;};int main(){ int x = 10; decltype( x ) var = x; // decltype( x )는 int const Point pt{ 3, 4 }; decltype( pt.x ) var2 = 3; // decltype( pt.x )는 int ..

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

[C++] 함수를 전달하기 위한 함수 포인터( function pointer )

함수 포인터( function pointer )포인터( pointer )란 객체의 메모리 주소를 저장하는 변수입니다.이러한 포인터 중에, 함수의 메모리 주소를 저장하는 포인터를 함수 포인터라고 합니다.int var{ 5 };int* ptr{ &var }; // int 타입 변수에 대한 포인터위와 같이, 포인터를 선언하려면 포인터가 가리키는 객체의 타입과 * 기호를 사용합니다.그리고, 함수 포인터를 선언하려면, 함수 포인터가 가리키는 함수의 타입과 *기호가 필요합니다..그런데, 여기서 함수의 타입( function type )은 무엇일까요? 함수를 정의하는데 반드시 필요한 것은, 함수의 이름과, 매개변수 타입 리스트, 그리고 반환 타입입니다.( 매개변수의 이름은 경우에 따라 없을 수도 있습니다. )이 중에..

2025. 2. 28.
카테고리 없음

[C++] 함수의 타입 추론과 후행 반환 타입을 위한 auto 키워드

함수의 타입 추론( type deduction )C++에서는 auto 키워드를 사용해 변수의 타입을 추론할 수 있습니다.int add( int x, int y ){ return x + y;}int main(){ auto var{ 3.14 + 2.5 }; // double 타입 auto var2{ add( 3, 5 ) }; // int 타입}위에서 컴파일러는 auto 키워드를 만나면, var를 초기화하는 표현식( 3.14 + 2.5 )으로부터 var의 타입을 double로 결정하는데, 이러한 것을 변수의 타입 추론이라고 합니다. [C++] 자동으로 변수의 타입을 완성하는 auto 키워드변수의 타입 추론( type deduction )C++ 에는 모든 값에 해당하는 타입이 있습니다.int..

2025. 2. 26.
카테고리 없음

[C++] 자동으로 변수의 타입을 완성하는 auto 키워드

변수의 타입 추론( type deduction )C++ 에는 모든 값에 해당하는 타입이 있습니다.int main(){ 5; // int 3.14; // double 5L; // long 5.0f; // float ?? variable{ 5 }; // variable의 타입 ??}예를 들어, 위의 3.14는 double 타입을 갖고, 5.0f는 float 타입을 갖고 있습니다.그렇기 때문에, 프로그래머가 명시하지 않더라도, 컴파일러는 이를 이용해서 변수의 타입 예상할 수 있습니다. 이렇게, 컴파일러가 변수의 값으로부터 변수의 타입을 예상하는 것을 타입 추론( type deduction )이라고 하며, 이 추론의 결과를 이용하기 위해 auto 키워드를 사..

2025. 2. 24.
  • «
  • 1
  • »

전체 카테고리

  • 분류 전체보기

블로그 인기글

태그

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

티스토리툴바