ホームページ バックエンド開発 C#.Net チュートリアル C++ での STL リストの使用方法の例

C++ での STL リストの使用方法の例

Apr 12, 2017 pm 03:03 PM
list stl

この記事では、C++ の STL リストの詳細な説明と簡単な例を主に紹介します。必要な方は参考にしてください。

C++ の STL リストの詳細な説明

リスト: 内部実装は 2 つです。効率的なウェイリンクリスト 挿入と削除を実行しますが、ランダムアクセスは実行できません


#include "stdafx.h" 
#include <iostream> 
#include <list> 
#include <iterator> 
#include <algorithm> 
using namespace std; 
const int num[5] = {1,3,2,4,5}; 
bool status(const int & value) 
{ 
 return value>6?true:false; 
} 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
 list<int> list1; 
 copy(num,num+5,back_insert_iterator<list<int>>(list1)); 
 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); 
 cout<<endl; 
 list1.sort(greater<int>());//5 4 3 2 1 
 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); 
 cout<<endl; 
 list<int>::iterator it = list1.begin(); 
 while (it != list1.end()) 
 { 
  (*it) += 2; 
  it++; 
 } 
 //7 6 5 4 3 
 list<int>::reverse_iterator re_it = list1.rbegin(); 
 cout<<"从后向前输出: "; 
 while (re_it != list1.rend()) 
 { 
  cout<<*re_it<<" "; 
  re_it++; 
 } 
 cout<<endl; 
 list1.reverse();// 3 4 5 6 7 
 list1.push_back(8);//3 4 5 6 7 8 
 list1.pop_front();//4 5 6 7 8 
 list1.remove(6);//4 5 7 8 
 list1.remove_if(status);// 4 5 
 list1.resize(4);// 4 5 0 0 
 list1.resize(6,1);// 4 5 0 0 1 1 
 list1.unique();//4 5 0 1 
 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); 
 cout<<endl; 
 list1.clear(); 
 cout<<"当前list1含有元素个数:"<<list1.size()<<endl; 
 list1.push_back(7);//list1:7 
 list<int> list2(3,2);//2 2 2 
 list2.merge(list1,greater<int>());//list2: 7 2 2 2 
 list2.insert(++list2.begin(),3);//list2: 7 3 2 2 2 
 list2.swap(list1);//list1:7 3 2 2 2 list2:empty 
 list1.erase(++list1.begin(),list1.end());// 7 
 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); 
 cout<<endl; 
 system("pause"); 
}
ログイン後にコピー
実行結果の画像:


3.メソッド


リストメンバー
説明

コンストラクター
コンストラクター

デストラクター
デストラクター

operator=
assignment オーバーロードされた演算子

assign
値を代入

front
最初の要素への参照を返す

戻る
最後を返すelement

begin
の参照は、最初の要素のイテレータを返します

end
は、最後の要素の次の位置のイテレータを返します

rbegin
後方ポインタを返します reverse_iterator

rend
リンクされたリストの最初の要素の次の位置にある reverse_iterator を返します

push_back
データを追加するリンクリストに Tail

push_front
リンクリストの先頭にデータを追加

pop_back
リンクリストの末尾の要素を削除

pop_front
リンクされたリストの先頭を削除 1つの要素

clear
すべての要素を削除

erase
要素または要素の範囲を削除する(オーバーロード2つ)

remove
リンクリスト内の値が一致する要素を削除(一致する要素はすべて削除)

remove_if
条件を満たす要素を削除(リンク リストを 1 回スキャンします)、パラメーターはカスタム コールバック関数です

empty
リンク リストが空かどうかを判断します

max_size
可能な最大長を返しますリンクされたリスト

size
リンクされたリスト内の要素の数を返す

resize
リンクされたリストの長さを再定義する(2つのオーバーロードされた関数)

reverse
リンクされたリストを反転

sort
リンクされたリストをデフォルトの昇順に並べ替えます

merge
2つの順序付けされたリンクリストを結合して順序付けますsplice

組み合わせの後に2つのリンクリスト(3つのオーバーロードされた関数)を組み合わせて、2番目のリンクリストがクリアされます。 Position (3 つのオーバーロード関数)

swap

2 つのリンクされたリストを交換します (2 つのオーバーロード関数)

一意の

隣接する重複要素を削除します

以上がC++ での STL リストの使用方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C++ STL でカスタム コンパレータを実装するにはどうすればよいですか? C++ STL でカスタム コンパレータを実装するにはどうすればよいですか? Jun 05, 2024 am 11:50 AM

カスタム コンパレータの実装は、operator() をオーバーロードするクラスを作成することで実現できます。このクラスは 2 つのパラメータを受け取り、比較の結果を示します。たとえば、StringLengthComparator クラスは、文字列の長さを比較して文字列を並べ替えます。クラスを作成し、operator() をオーバーロードして、比較結果を示すブール値を返します。コンテナアルゴリズムでの並べ替えにカスタムコンパレータを使用する。カスタム コンパレータを使用すると、カスタム比較基準を使用する必要がある場合でも、カスタム基準に基づいてデータを並べ替えたり比較したりできます。

PHPでRedisリスト操作を実装する方法 PHPでRedisリスト操作を実装する方法 May 26, 2023 am 11:51 AM

リスト操作 //リストの先頭から値を挿入します。 $ret=$redis->lPush('city','guangzhou');//リストの末尾から値を挿入します。 $ret=$redis->rPush('city','guangzhou');//リストの指定範囲内の要素を取得します。 0 はリストの最初の要素を表し、-1 は最後の要素を表し、-2 は最後から 2 番目の要素を表します。 $ret=$redis->l

C++ STL コンテナのサイズを取得するにはどうすればよいですか? C++ STL コンテナのサイズを取得するにはどうすればよいですか? Jun 05, 2024 pm 06:20 PM

コンテナーの size() メンバー関数を使用して、コンテナー内の要素の数を取得できます。たとえば、ベクトル コンテナの size() 関数は要素数を返し、リスト コンテナの size() 関数は要素数を返し、文字列コンテナの length() 関数は文字数を返します。 deque コンテナーの Capacity() 関数は、割り当てられたメモリ ブロックの数を返します。

コードの再利用性を向上させるためにカスタム STL 関数オブジェクトを設計するにはどうすればよいですか? コードの再利用性を向上させるためにカスタム STL 関数オブジェクトを設計するにはどうすればよいですか? Apr 25, 2024 pm 02:57 PM

STL 関数オブジェクトを使用すると再利用性が向上し、次の手順が含まれます。 関数オブジェクト インターフェイスを定義します (クラスを作成し、std::unary_function または std::binary_function から継承します)。 STL アルゴリズム (std::transform など) 経由で関数オブジェクトを使用して必要な機能を実装します。

C++ STL を使用するときにハッシュの衝突に対処するにはどうすればよいですか? C++ STL を使用するときにハッシュの衝突に対処するにはどうすればよいですか? Jun 01, 2024 am 11:06 AM

C++STL ハッシュの競合を処理する方法は次のとおりです。 チェーン アドレス方法: リンク リストを使用して競合する要素を格納します。これは適用性が高くなります。オープン アドレス指定方法: 要素を保存するためにバケット内の利用可能な場所を検索します。 サブメソッドは次のとおりです。 線形検出: 順番に次の利用可能な場所を検索します。二次検出: 二次形式で位置をスキップして検索します。

C++ STL を使用してコードの可読性と保守性を実現するにはどうすればよいですか? C++ STL を使用してコードの可読性と保守性を実現するにはどうすればよいですか? Jun 04, 2024 pm 06:08 PM

C++ 標準テンプレート ライブラリ (STL) を使用すると、コードの可読性と保守性を向上させることができます。 1. コンテナを使用してプリミティブ配列を置き換え、型安全性とメモリ管理を向上させます。 2. アルゴリズムを使用して、複雑なタスクを簡素化し、効率を向上させます。 3. イテレータを使用してトラバーサルを強化し、コードを簡素化します。 4. スマート ポインタを使用してメモリ管理を改善し、メモリ リークとダングリング ポインタを削減します。

C++ STL コンテナをソートするにはどうすればよいですか? C++ STL コンテナをソートするにはどうすればよいですか? Jun 02, 2024 pm 08:22 PM

C++ で STL コンテナを並べ替える方法: sort() 関数を使用して、std::vector などのコンテナを適切に並べ替えます。順序付けされたコンテナー std::set および std::map を使用すると、要素は挿入時に自動的に並べ替えられます。カスタムの並べ替え順序の場合、文字列のベクトルをアルファベット順に並べ替えるなど、カスタム コンパレータ クラスを使用できます。

JavaでJSONArrayをリストに変換する方法 JavaでJSONArrayをリストに変換する方法 May 04, 2023 pm 05:25 PM

1: JSONArray を List にJSONArray 文字列を List に//JSONArray を初期化するJSONArrayarray=newJSONArray();array.add(0,"a");array.add(1,"b");array.add(2,"c") ; Listlist=JSONObject.parseArray(array.toJSONString(),String.class);System.out.println(list.to

See all articles