Namespaces
Variants

std::forward_list<T,Allocator>:: resize

From cppreference.net

void resize ( size_type count ) ;
(1) (C++11부터)
(C++26부터 constexpr)
void resize ( size_type count, const value_type & value ) ;
(2) (C++11부터)
(C++26부터 constexpr)

컨테이너의 크기를 count 개의 요소를 포함하도록 조정합니다:

  • count 가 현재 크기와 같으면 아무 작업도 수행하지 않습니다.
  • 현재 크기가 count 보다 크면, 컨테이너는 처음 count 개의 요소로 축소됩니다.
  • 현재 크기가 count 보다 작으면:
1) 추가적인 default-inserted 요소들이 추가됩니다.
2) value 의 추가 복사본이 추가됩니다.

목차

매개변수

count - 컨테이너의 새로운 크기
value - 새로운 요소들을 초기화할 값
타입 요구사항
-
다음 조건이 만족될 경우 동작은 정의되지 않음:
1) T DefaultInsertable 이 아닌 경우 forward_list 에.
2) T CopyInsertable 이 아닌 경우 forward_list 에.

복잡도

현재 크기와 count 사이의 차이에 선형적으로 비례합니다. 첫 번째 삭제할 요소/삽입할 끝 위치에 도달하기 위한 리스트 순회로 인해 추가적인 복잡도가 발생할 수 있습니다.

참고 사항

오버로드에서 값 초기화 ( 1 ) 가 바람직하지 않은 경우, 예를 들어 요소들이 비클래스 타입이고 제로화가 필요하지 않다면, 사용자 정의 Allocator::construct 를 제공함으로써 이를 피할 수 있습니다.

예제

#include <forward_list>
#include <iostream>
void print(auto rem, const std::forward_list<int>& c)
{
    for (std::cout << rem; const int el : c)
        std::cout << el << ' ';
    std::cout << '\n';
}
int main()
{
    std::forward_list<int> c = {1, 2, 3};
    print("The forward_list holds: ", c);
    c.resize(5);
    print("After resize up to 5: ", c);
    c.resize(2);
    print("After resize down to 2: ", c);
    c.resize(6, 4);
    print("After resize up to 6 (initializer = 4): ", c);
}

출력:

The forward_list holds: 1 2 3
After resize up to 5: 1 2 3 0 0
After resize down to 2: 1 2
After resize up to 6 (initializer = 4): 1 2 4 4 4 4


참고 항목

가능한 최대 요소 수를 반환합니다
(public member function)
컨테이너가 비어 있는지 확인합니다
(public member function)