inplace_vector
inplace_vector (std::inplace_vector — 제자리 벡터)
std::inplace_vector는 C++26에서 도입된 컨테이너로, 고정된 크기(상한)의 배열 기반 벡터예요. 힙 할당을 하지 않고 내부 저장소만 사용해요.
출처: cppreference
본문
std::inplace_vector는 std::vector처럼 동작하지만, 템플릿 인자로 주어진 최대 크기 N을 넘지 못하는 고정 용량 컨테이너예요. 특징은 다음과 같아요.
- 힙 할당(동적 메모리)을 사용하지 않아요. 저장소는 객체 자체에 내장돼요.
- 최대 원소 개수가 컴파일 타임 상수
N으로 정해져요. push_back,emplace_back등은 최대치에 도달하면 예외(std::bad_array_new_length또는 지정 예외)를 던져요.- 메모리 할당이 없어서 예외 안전성과 성능이 중요한 실시간·임베디드 용도에 유리해요.
템플릿 매개변수
T: 저장된 원소의 타입.N:std::size_t타입의 최대 원소 개수.
멤버 타입
value_type=Tsize_type,difference_type,reference,const_reference,pointer,const_pointeriterator,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이에요. 최대치를 넘는 삽입은 예외를 발생시켜요.