inplace_vector

inplace_vector (std::inplace_vector — 제자리 벡터)

std::inplace_vector는 C++26에서 도입된 컨테이너로, 고정된 크기(상한)의 배열 기반 벡터예요. 힙 할당을 하지 않고 내부 저장소만 사용해요.

출처: cppreference

본문

std::inplace_vectorstd::vector처럼 동작하지만, 템플릿 인자로 주어진 최대 크기 N을 넘지 못하는 고정 용량 컨테이너예요. 특징은 다음과 같아요.

  • 힙 할당(동적 메모리)을 사용하지 않아요. 저장소는 객체 자체에 내장돼요.
  • 최대 원소 개수가 컴파일 타임 상수 N으로 정해져요.
  • push_back, emplace_back 등은 최대치에 도달하면 예외(std::bad_array_new_length 또는 지정 예외)를 던져요.
  • 메모리 할당이 없어서 예외 안전성과 성능이 중요한 실시간·임베디드 용도에 유리해요.

템플릿 매개변수

  • T: 저장된 원소의 타입.
  • N: std::size_t 타입의 최대 원소 개수.

멤버 타입

  • value_type = T
  • size_type, difference_type, reference, const_reference, pointer, const_pointer
  • iterator, const_iterator, reverse_iterator, const_reverse_iterator

멤버 함수

  • 생성자/파괴자, operator=, assign, assign_range, get_allocator
  • 원소 접근: at, operator[], front, back, data
  • 이터레이터: begin, end, rbegin, rend
  • 용량: empty, size, max_size, capacity
  • 수정자: clear, insert, insert_range, emplace, emplace_back, emplace_front, push_back, prepend_range, append_range, pop_back, erase, erase_if, swap, resize

참고

capacity()는 항상 N이에요. 최대치를 넘는 삽입은 예외를 발생시켜요.

더 알아보기 (Learn more)

cppreference