void resize(size_type sz); // (1)
void resize(size_type sz, const value_type& c); // (2)
概要
要素数を変更する
テンプレートパラメータ制約
- (1)
- C++14まで : 型
T
がデフォルト構築可能であること - C++17から : 型
T
が*this
に対してデフォルト挿入可能であること
- C++14まで : 型
- (2) : 型
T
が*this
に対してコピー挿入可能であること
効果
sz
がコンテナの要素数より小さい場合、後ろから超過している要素を削除する。
sz
がコンテナの要素数より大きい場合、不足している分だけ末尾に要素を挿入する。挿入する要素の値を指定しない場合(つまり1引数版を使用する場合)、値初期化されたT
型の値が挿入される。2引数版の場合は、値c
のコピーが挿入される。
戻り値
なし
例
#include <iostream>
#include <forward_list>
#include <algorithm>
int main()
{
// 増加
{
std::forward_list<int> ls = {3, 1, 4};
ls.resize(5);
std::for_each(ls.begin(), ls.end(), [](int x) { std::cout << x << std::endl; });
}
std::cout << std::endl;
// 減少
{
std::forward_list<int> ls = {3, 1, 4};
ls.resize(1);
std::for_each(ls.begin(), ls.end(), [](int x) { std::cout << x << std::endl; });
}
}
出力
3
1
4
0
0
3
バージョン
言語
- C++11
処理系
- Clang: ??
- GCC: 4.7.0 ✅
- ICC: ??
- Visual C++: ??