C++ STLでコンストラクタを使ってリストを作成する方法
このチュートリアルでは、C++ STLのstd::listをコンストラクタを使って作成する方法について解説します。
リスト(list)は、メモリ上に要素を非連続的な形で格納するデータ構造です。内部的には双方向連結リストとして実装されており、vectorと比較して任意の位置への要素の挿入・削除が高速に行えるという特徴があります。
コンストラクタによるリストの初期化
std::listは、コンストラクタに「要素数」と「初期値」を渡すことで、指定した値で満たされたリストを簡単に生成できます。以下の例では、値100で初期化された10個の要素を持つリストを作成しています。
サンプルコード
#include <iostream>
#include <list>
using namespace std;
// リストを表示する関数
void print_list(list<int> mylist){
list<int>::iterator it;
// すべての要素を順に出力
for (it = mylist.begin(); it != mylist.end(); ++it)
cout << ' ' << *it;
cout << '\n';
}
int main(){
// コンストラクタを使ってリストを作成(要素数10、初期値100)
list<int> myList(10, 100);
print_list(myList);
return 0;
}
実行結果
100 100 100 100 100 100 100 100 100 100
コードの解説
ポイントとなるのは list<int> myList(10, 100); の部分です。第1引数に要素数(10)、第2引数に各要素の初期値(100)を指定することで、すべての要素が100で埋められたサイズ10のリストが一括で生成されます。
print_list関数では、イテレータを使ってリストの先頭(begin())から末尾(end())まで順番に要素をたどりながら出力しています。このようにコンストラクタを活用すると、同じ値で初期化されたリストを簡潔に作成でき、コードの可読性も向上します。
-
JavaScriptでフィルターリスト(検索絞り込み機能)を作成する方法
JavaScriptを使えば、検索ボックスに入力したキーワードに応じてリスト項目をリアルタイムに絞り込む「フィルターリスト」を簡単に実装できます。以下は、HTML・CSS・JavaScriptを組み合わせた基本的なサンプルコードです。 サンプルコード <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style> * {
-
C++ STLのlist::reverse()関数の使い方と実例解説
本記事では、C++におけるlist::reverse()関数の動作、構文、具体的な使用例について詳しく解説します。STLにおけるlistとはlistは、シーケンス内の任意の位置で定数時間O(1)での要素の挿入・削除を可能にするデータ構造です。listは双方向連結リストとして実装されており、メモリの非連続的な割り当てが可能です。配列、vector、dequeと比較すると、コンテナ内の任意の位置への要素の挿入・抽出・移動において優れたパフォーマンスを発揮します。一方で、要素への直接アクセス(ランダムアクセス)は遅いという特徴があります。listはforward_listと似ていますが、forwar