std::vector<T,Allocator>:: shrink_to_fit
|
void
shrink_to_fit
(
)
;
|
(constexpr C++20부터) | |
사용되지 않는 용량의 제거를 요청합니다.
capacity() 를 size() 로 축소하라는 비구속적 요청입니다. 이 요청이 실제로 이행되는지는 구현에 따라 다릅니다.
재할당이 발생하면 모든 반복자(
end()
반복자 포함)와 모든 요소에 대한 참조가 무효화됩니다. 재할당이 발생하지 않으면 어떤 반복자나 참조도 무효화되지 않습니다.
|
만약
|
(since C++11) |
목차 |
복잡도
컨테이너 크기에 대해 최대 선형입니다.
예외
CopyInsertable
|
(C++11부터) |
참고 사항
libstdc++에서,
shrink_to_fit()
는
사용할 수 없습니다
C++98 모드에서.
예제
#include <iostream> #include <vector> int main() { std::vector<int> v; std::cout << "Default-constructed capacity is " << v.capacity() << '\n'; v.resize(100); std::cout << "Capacity of a 100-element vector is " << v.capacity() << '\n'; v.resize(50); std::cout << "Capacity after resize(50) is " << v.capacity() << '\n'; v.shrink_to_fit(); std::cout << "Capacity after shrink_to_fit() is " << v.capacity() << '\n'; v.clear(); std::cout << "Capacity after clear() is " << v.capacity() << '\n'; v.shrink_to_fit(); std::cout << "Capacity after shrink_to_fit() is " << v.capacity() << '\n'; for (int i = 1000; i < 1300; ++i) v.push_back(i); std::cout << "Capacity after adding 300 elements is " << v.capacity() << '\n'; v.shrink_to_fit(); std::cout << "Capacity after shrink_to_fit() is " << v.capacity() << '\n'; }
가능한 출력:
Default-constructed capacity is 0 Capacity of a 100-element vector is 100 Capacity after resize(50) is 100 Capacity after shrink_to_fit() is 50 Capacity after clear() is 50 Capacity after shrink_to_fit() is 0 Capacity after adding 300 elements is 512 Capacity after shrink_to_fit() is 300
결함 보고서
다음 동작 변경 결함 보고서는 이전에 게시된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 755 | C++98 |
std::vector
에 명시적인 축소 맞춤(shrink-to-fit) 연산이 없었음
|
제공됨 |
| LWG 2033 |
C++98
C++11 |
1. 복잡도 요구사항이 누락됨 (C++98)
2.
T
가
MoveInsertable
요구사항을 충족해야 함 (C++11)
|
1. 추가됨
2. 요구사항 지정됨 |
| LWG 2223 |
C++98
C++11 |
1. 참조, 포인터, 반복자가 무효화되지 않음 (C++98)
2. 예외 안전성 보장이 없음 (C++11) |
1. 무효화될 수 있음
2. 추가됨 |
참고 항목
|
요소의 개수를 반환합니다
(public member function) |
|
|
현재 할당된 저장 공간에 보관할 수 있는 요소의 개수를 반환합니다
(public member function) |