void resize(size_type sz); // (1) : C++11
void resize(size_type sz, const T& c); // (2) : C++11
void resize(size_type sz, const T& c = T()); // (1) + (2) : C++03
概要
要素数を変更する
要件
-
(1) :
- 型
T
がデフォルト構築可能であること - 型
T
が*this
に対してコピー挿入可能であること (C++11まで) - 型
T
が*this
に対してムーブ挿入が可能であること (C++14)
- 型
-
(2) :
- 型
T
が*this
に対してコピー挿入可能であること
- 型
効果
-
(1) :
-
(2) :
- C++11まで
戻り値
なし
例
#include <iostream>
#include <deque>
int main()
{
// 増加
{
std::deque<int> c = {3, 1, 4};
c.resize(5);
for (int x : c) {
std::cout << x << std::endl;
}
}
std::cout << std::endl;
// 減少
{
std::deque<int> c = {3, 1, 4};
c.resize(1);
for (int x : c) {
std::cout << x << std::endl;
}
}
}
出力
3
1
4
0
0
3
参照
- LWG Issue 2033. Preconditions of
reserve
,shrink_to_fit
, andresize
functions - LWG Issue 2323.
vector::resize(n, t)
's specification should be simplified - LWG Issue 2160. Unintended destruction ordering-specification of
resize
関連項目
名前 | 説明 |
---|---|
size |
要素数を取得する |