C++
 Computer >> コンピューター >  >> プログラミング >> C++

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())まで順番に要素をたどりながら出力しています。このようにコンストラクタを活用すると、同じ値で初期化されたリストを簡潔に作成でき、コードの可読性も向上します。

  1. JavaScriptでフィルターリスト(検索絞り込み機能)を作成する方法

    JavaScriptを使えば、検索ボックスに入力したキーワードに応じてリスト項目をリアルタイムに絞り込む「フィルターリスト」を簡単に実装できます。以下は、HTML・CSS・JavaScriptを組み合わせた基本的なサンプルコードです。 サンプルコード <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style> * {

  2. C++ STLのlist::reverse()関数の使い方と実例解説

    本記事では、C++におけるlist::reverse()関数の動作、構文、具体的な使用例について詳しく解説します。STLにおけるlistとはlistは、シーケンス内の任意の位置で定数時間O(1)での要素の挿入・削除を可能にするデータ構造です。listは双方向連結リストとして実装されており、メモリの非連続的な割り当てが可能です。配列、vector、dequeと比較すると、コンテナ内の任意の位置への要素の挿入・抽出・移動において優れたパフォーマンスを発揮します。一方で、要素への直接アクセス(ランダムアクセス)は遅いという特徴があります。listはforward_listと似ていますが、forwar