C++
std :: forward_list
サーチ…
前書き
std::forward_list
は、コンテナ内のどこからでも要素の高速挿入と削除をサポートするコンテナです。高速ランダムアクセスはサポートされていません。これは単一リンクリストとして実装されており、基本的にはCでの実装と比較してオーバーヘッドがありませんstd::list
と比較して、このコンテナは双方向の反復が必要ない場合に、より効率的なストレージを提供します。
備考
リスト内の要素の追加、削除、および移動は、現在リスト内の他の要素を参照しているイテレータを無効にしません。ただし、要素を参照するイテレータまたは参照は、対応する要素がリストから削除されると無効になります(erase_afterを介して)。 std :: forward_listはContainerの要件を満たしています(サイズメンバ関数を除いて、演算子==の複雑さは常に線形です)、AllocatorAwareContainerとSequenceContainer。
例
#include <forward_list>
#include <string>
#include <iostream>
template<typename T>
std::ostream& operator<<(std::ostream& s, const std::forward_list<T>& v) {
s.put('[');
char comma[3] = {'\0', ' ', '\0'};
for (const auto& e : v) {
s << comma << e;
comma[0] = ',';
}
return s << ']';
}
int main()
{
// c++11 initializer list syntax:
std::forward_list<std::string> words1 {"the", "frogurt", "is", "also", "cursed"};
std::cout << "words1: " << words1 << '\n';
// words2 == words1
std::forward_list<std::string> words2(words1.begin(), words1.end());
std::cout << "words2: " << words2 << '\n';
// words3 == words1
std::forward_list<std::string> words3(words1);
std::cout << "words3: " << words3 << '\n';
// words4 is {"Mo", "Mo", "Mo", "Mo", "Mo"}
std::forward_list<std::string> words4(5, "Mo");
std::cout << "words4: " << words4 << '\n';
}
出力:
words1: [the, frogurt, is, also, cursed]
words2: [the, frogurt, is, also, cursed]
words3: [the, frogurt, is, also, cursed]
words4: [Mo, Mo, Mo, Mo, Mo]
メソッド
メソッド名 | 定義 |
---|---|
operator= | コンテナに値を代入する |
assign | コンテナに値を代入する |
get_allocator | 関連付けられたアロケータを返します。 |
------ | ------ |
要素アクセス | |
front | 最初の要素にアクセスする |
------ | ------ |
イテレータ | |
before_begi n | 開始前に要素にイテレータを返します |
cbefore_begin | 開始前に要素に一定のイテレータを返します |
begin | イテレータを最初に返します |
cbegin | constイテレータを先頭に返す |
end | イテレータを最後まで返します。 |
cend | イテレータを最後まで返します。 |
容量 | |
empty | コンテナが空であるかどうかをチェックします。 |
max_size | 要素の可能な最大数を返します。 |
修飾子 | |
clear | 内容をクリアする |
insert_after | 要素の後ろに要素を挿入する |
emplace_after | 要素の後ろに要素を組み立てる |
erase_after | 要素の後の要素を消去する |
push_front | 最初に要素を挿入する |
emplace_front | 最初に要素をインプレースで構築する |
pop_front | 最初の要素を削除します。 |
resize | 格納される要素の数を変更する |
swap | 内容を交換する |
オペレーション | |
merge | 2つのソートされたリストをマージします。 |
splice_after | 要素を別のforward_listから移動する |
remove | 特定の基準を満たす要素を削除する |
remove_if | 特定の基準を満たす要素を削除する |
reverse | 要素の順序を逆にする |
unique | 連続する重複要素を削除する |
sort | 要素をソートする |
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow