「std::forward list」の版間の差分

提供: C++入門
移動: 案内検索
(ページの作成:「std::forward_list (Forward List)とは、任意の位置に高速な要素の挿入と削除ができるSTL]のコンテナです。[C++11]]で追加され...」)
 
 
行1: 行1:
[[std::forward_list]] (Forward List)とは、任意の位置に高速な要素の挿入と削除ができる[[STL]]]の[[コンテナ]]です。[C++11]]で追加されました。高速なランダムアクセスはサポートされていません。双方向のイテレーションが不要であれば、[[std::list]]の代わりに利用できます。[[std::list]]に比べるとメモリの使用量が少なくなります。[[C言語]]との実装と比較しても、オーバーヘッドは、ありません。
+
[[std::forward_list]] (Forward List)とは、任意の位置に高速な要素の挿入と削除ができる[[STL]]の[[コンテナ]]です。[[C++11]]で追加されました。高速なランダムアクセスはサポートされていません。双方向のイテレーションが不要であれば、[[std::list]]の代わりに利用できます。[[std::list]]に比べるとメモリの使用量が少なくなります。[[C言語]]との実装と比較しても、オーバーヘッドは、ありません。
  
 
'''読み方'''
 
'''読み方'''

2014年7月27日 (日) 14:29時点における最新版

std::forward_list (Forward List)とは、任意の位置に高速な要素の挿入と削除ができるSTLコンテナです。C++11で追加されました。高速なランダムアクセスはサポートされていません。双方向のイテレーションが不要であれば、std::listの代わりに利用できます。std::listに比べるとメモリの使用量が少なくなります。C言語との実装と比較しても、オーバーヘッドは、ありません。

読み方

std::forward_list
えすてぃーでぃー ふぉわーど りすと

概要

std::listは、双方向リストです。メモリの使用量が多いことや処理速度でオーバーヘッドが大きいという課題を抱えていました。双方向リストが必要がなく、単方向リストで十分なことが多々あります。そういった背景から std::forward_list が追加されました。

forward_list1.cpp の例

ソースコード forward_list1.cpp

/*
 * forward_list1.cpp
 * Copyright (C) 2014 kaoru <kaoru@bsd>
 */
 
#include <iostream>
#include <forward_list>
using namespace std;
int
main(int argc, char const* argv[])
{
        forward_list<int> list1;
 
        list1.push_front(3);
        list1.push_front(2);
        list1.push_front(1);
        for (auto x: list1) {
                cout << x << endl;
        }
        return 0;
}

コンパイル

c++ -std=c++11  forward_list1.cpp -o forward_list1

実行例

% ./forward_list1
1
2
3

関連項目