Namespaces
Variants

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

From cppreference.net

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

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

  • 만약 count 가 현재 크기와 같다면, 아무 작업도 수행하지 않습니다.
  • 현재 크기가 count 보다 크다면, 컨테이너는 처음 count 개의 요소로 축소됩니다.
  • 현재 크기가 count 보다 작다면:
1) 추가적인 복사본 T ( ) (C++11 이전) 기본 삽입된 요소들 (C++11 이후) 이 추가됩니다.
2) value 의 추가 복사본이 추가됩니다.

목차

매개변수

count - 컨테이너의 새로운 크기
value - 새로운 요소들을 초기화할 값
타입 요구사항
-

다음 조건이 충족되면 동작은 정의되지 않음:

1) T DefaultInsertable 가 아닌 경우 list 에.
2) T CopyInsertable 가 아닌 경우 list 에.
(C++11부터)

복잡도

현재 크기와 count 사이의 차이에 선형적으로 비례합니다.

참고 사항

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

예제

#include <list>
#include <iostream>
void print(auto rem, const std::list<int>& c)
{
    for (std::cout << rem; const int el : c)
        std::cout << el << ' ';
    std::cout << '\n';
}
int main()
{
    std::list<int> c = {1, 2, 3};
    print("The 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 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

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 132 C++98 삭제 범위 결정에 임의 접근 반복자가 사용됨 양방향 반복자 사용
LWG 679 C++98 resize() value 를 값으로 전달함 const 참조로 전달
LWG 1420 C++98 resize ( size ( ) ) 의 동작이 명시되지 않음 명시됨

참고 항목

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