Cyn.thi.s
Cyn.thi.s Programming
Cyn.thi.s
전체 방문자
오늘
어제
  • 분류 전체보기
    • Programming
      • Visual Studio
      • Data Structure & Algorithm
      • C, C++
      • C#
      • Direct X
      • Unity Engine
      • Unreal Engine
      • Game-Math
    • Project
      • Direct X
      • Unity
      • Unreal
    • Life

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • unreal
  • 구글플레이
  • unity
  • 언리얼 카메라 쉐이크
  • 코옵
  • NDC
  • 벡터 내적 #
  • Ue4 Camera Shake
  • 언리얼 클래스 명 수정
  • 3d 백뷰
  • UE5
  • Class Naming Change
  • 3차원 회전 행렬 구하기 #오일러 회전 #짐벌락 현상
  • Precompiled Header #C++ #C
  • 2d 아케이드
  • Linear Transformation #Matrix #선형변환 #행렬
  • SoftRenderer
  • UE4
  • 투영 벡터
  • 백페이스 컬링 #Back Face Culling #후면 폴리곤 제거 #은면 제거

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Cyn.thi.s

Cyn.thi.s Programming

Programming/C, C++

C++ push_back, emplace_back in std::vector

2019. 12. 4. 22:41

1. push_back

std::vector의 멤버 함수인 push_back은 vector의 끝에 요소를 추가할때 사용한다. 

종류는 Move Semantics(R-Value)개념이 추가되서 총 2개이다. 

 

void push_back(const T& value); // C++ 03 ~

- 값 복사를 통해 요소를 추가

void push_back (T&& value);  // C++ 11 ~

- (임시) 객체의 복사가 아닌 이동을 통해 요소를 추가 

 

C++ 11에서 추가된 push_back이 불필요한 오버헤드를 줄였다. 


2. emplace_back

push_back과 마찬가지로 std::vector의 멤버함수로 기능인 vector의 요소 끝에 원소를 추가하는 함수이다.

 

template< class... Args>

void emplace_back(Args&&... args);

 

push_back과의 차이점 

-push_back과는 다르게 삽입할 객체의 생성자를 위한 인자들을 받아 std::vector 내에서 직접 객체를 생성하여,

삽입하므로 임시 객체의 (생성, 파괴, 복사, 이동)을 하지 않아도 되어 성능상 더 유리하다. 

 

 

 

 

 

저작자표시 (새창열림)

'Programming > C, C++' 카테고리의 다른 글

03. C++ Manipulator Output Formatting  (0) 2019.11.25
02. C++ namespace  (0) 2019.10.28
01. C/C++ Input, Output 입출력  (0) 2019.10.28
    'Programming/C, C++' 카테고리의 다른 글
    • 03. C++ Manipulator Output Formatting
    • 02. C++ namespace
    • 01. C/C++ Input, Output 입출력
    Cyn.thi.s
    Cyn.thi.s
    Cyn.thi.s Game Programming Life

    티스토리툴바