C++ STLのlist::resize()関数とは?構文・パラメータ・使用例を徹底解説
本記事では、C++のSTL(Standard Template Library)におけるlist::resize()関数の動作、構文、具体的な使用例について詳しく解説します。
STLにおけるlistとは
listは、シーケンス内の任意の位置に対して定数時間での挿入・削除を可能にするデータ構造です。listは双方向連結リストとして実装されており、非連続的なメモリ割り当てを行います。そのため、配列やvector、dequeと比較して、コンテナ内の任意の位置への要素の挿入・抽出・移動において優れたパフォーマンスを発揮します。一方で、要素への直接アクセス(ランダムアクセス)は遅いという特徴があります。また、listはforward_listと似ていますが、forward_listは単方向連結リストであり、前方方向にしかイテレートできない点が異なります。
list::resize()とは
list::resize()はC++のSTLに組み込まれている関数で、ヘッダーファイル<list>内で宣言されています。resize()はlistコンテナのサイズを変更するために使用され、引数で指定した要素数になるようにコンテナをリサイズします。
構文
list_name.resize(int n);
または
list_name.resize(int n, const value_type &val);
この関数は、1つまたは2つの引数を受け取ることができます。
パラメータ
n − コンテナの新しいサイズ(要素数)を定義する整数型の値です。
val − コンテナ内のすべての空き領域にコピーされるオブジェクトです。省略した場合はデフォルト値が使用されます。
戻り値
この関数は何も返しません。単にコンテナのサイズを変更するだけです。
使用例
#include <bits/stdc++.h>
using namespace std;
int main(){
// リストを作成
list<int> myList;
// リストに要素を挿入
myList.push_back(1);
myList.push_back(2);
myList.push_back(3);
myList.push_back(4);
// リサイズ前のリストの要素を表示
cout << "List elements are : ";
for (auto i = myList.begin(); i!= myList.end(); i++)
cout << *i << " ";
// リストをリサイズ
myList.resize(5);
cout<<"\nList after resize: ";
for (auto i = myList.begin(); i!= myList.end(); i++)
cout << *i << " ";
// 再度リストをリサイズ
myList.resize(6);
cout<<"\nList after resizing it again : ";
for (auto i = myList.begin(); i != myList.end(); i++)
cout << *i << " ";
return 0;
}出力結果
上記のコードを実行すると、以下の出力が生成されます。
List elements are : 1 2 3 4 List after resize : 1 2 3 4 0 List after resizing it again : 1 2 3 4 0 0
まとめ
list::resize()を使うことで、listコンテナのサイズを簡単に変更できます。指定したサイズが現在のサイズより大きい場合、不足分には第2引数で指定した値(省略時はデフォルト値)が追加されます。この例では、初期状態の4つの要素に対してresize(5)を呼び出すと「0」が1つ追加され、さらにresize(6)を呼び出すと「0」がもう1つ追加されていることが確認できます。
-
C++ STLのlist::reverse()関数の使い方と実例解説
本記事では、C++におけるlist::reverse()関数の動作、構文、具体的な使用例について詳しく解説します。STLにおけるlistとはlistは、シーケンス内の任意の位置で定数時間O(1)での要素の挿入・削除を可能にするデータ構造です。listは双方向連結リストとして実装されており、メモリの非連続的な割り当てが可能です。配列、vector、dequeと比較すると、コンテナ内の任意の位置への要素の挿入・抽出・移動において優れたパフォーマンスを発揮します。一方で、要素への直接アクセス(ランダムアクセス)は遅いという特徴があります。listはforward_listと似ていますが、forwar
-
C++STLのlist back()関数の使い方を解説
C++のlist back()関数とは本記事では、C++におけるlist back()関数の動作について詳しく解説します。list::back()関数は、C++標準テンプレートライブラリ(STL)の一部であり、リストの最後(末尾)の要素を取得・表示するために使用されます。この関数を呼び出す前に、必ず<list>ヘッダーファイルをインクルードする必要がある点に注意してください。構文List_Name.back();パラメータこの関数は、いかなるパラメータも受け取りません。戻り値この関数は、リストの最後の要素の値を返します。なお、リストが空の場合の動作は未定義となるため、呼び出し前にリ