std::deque<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 보다 작다면:
2)
value
의 추가 복사본이 추가됩니다.
목차 |
매개변수
| count | - | 컨테이너의 새로운 크기 | ||
| value | - | 새로운 요소들을 초기화할 값 | ||
| 타입 요구사항 | ||||
-
|
||||
복잡도
현재 크기와 count 사이의 차이에 선형적으로 비례합니다.
참고 사항
오버로드에서 값 초기화
(
1
)
가 바람직하지 않은 경우, 예를 들어 요소들이 비클래스 타입이고 제로화가 필요하지 않다면,
사용자 정의
Allocator::construct
를 제공함으로써 이를 피할 수 있습니다.
예제
이 코드 실행
#include <deque> #include <iostream> void print(auto rem, const std::deque<int>& c) { for (std::cout << rem; const int el : c) std::cout << el << ' '; std::cout << '\n'; } int main() { std::deque<int> c = {1, 2, 3}; print("The deque 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 deque 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 679 | C++98 |
resize()
가
value
를 값으로 전달함
|
const 참조로 전달 |
| LWG 1418 | C++98 | resize ( size ( ) ) 의 동작이 명시되지 않음 | 명시됨 |
| LWG 2033 | C++11 |
1. 요소들이
erase()
[1]
를 사용하여 제거됨
2.
T
가
MoveInsertable
일 필요가 없음
|
1.
pop_back()
사용
2. 요구됨 |
| LWG 2066 | C++11 |
오버로드
(
1
)
가 오버로드
(
2
)
의 예외
안전성 보장을 가지지 않음 |
추가됨 |
| LWG 2160 | C++11 |
LWG 2033의 해결로 인해
요소들이 pop_back() [2] 를 사용하여 제거됨 |
요소 제거 방법을
명시하지 않음 |
-
↑
erase()
는
deque의 중간에 있는 요소들을 제거할 수 있으므로, 제거된 구간 뒤에 있는 요소들이 빈 공간을 채우기 위해 앞으로 이동될 수 있도록 값 타입이 MoveAssignable 요구사항을 만족해야 합니다. 그러나resize()는deque의 끝에 있는 요소들만 제거할 수 있으므로 MoveAssignable 요구사항이 불필요합니다. - ↑ pop_back() 을 사용하여 요소들을 제거하는 것은 요소들이 뒤에서 앞으로 순서대로 제거되어야 함을 의미합니다.
참고 항목
|
가능한 최대 원소 개수를 반환합니다
(public member function) |
|
|
원소의 개수를 반환합니다
(public member function) |
|
|
컨테이너가 비어 있는지 확인합니다
(public member function) |