「std::forward list」の版間の差分
提供: C++入門
(ページの作成:「std::forward_list (Forward List)とは、任意の位置に高速な要素の挿入と削除ができるSTL]のコンテナです。[C++11]]で追加され...」) |
|||
行1: | 行1: | ||
− | [[std::forward_list]] (Forward List)とは、任意の位置に高速な要素の挿入と削除ができる[[STL | + | [[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