個人財務 C ++プログラミング:リストを通してあなたの道を作る - ダミー

C ++プログラミング:リストを通してあなたの道を作る - ダミー

ビデオ: Section 10 2025

ビデオ: Section 10 2025
Anonim

C ++プログラマーは、各要素のインデックスを提供することによって配列を反復処理します。しかし、この手法は、 list のようなランダムアクセスが許可されていないコンテナでは機能しません。 getFirst()やgetNext() などのメソッドに基づくソリューションを想像することができます。 しかし、標準テンプレートライブラリの設計者は、任意のタイプのコンテナを横断するための共通の方法を提供したいと考えていました。

<! --1 - >

これに対して、標準テンプレートライブラリはイテレータを定義します。

イテレータ は、コンテナのメンバを指すオブジェクトです。一般的に、すべてのイテレータは次の関数をサポートしています。

  • クラスは、コレクションの最初のメンバーを指すイテレータを返すことができます。

  • イテレータは、あるメンバから次のメンバに移動できます。

  • イテレータは、リストの最後に到達すると指示を返します。

    <! - 2 - >
  • プログラムは、イテレータが指す要素を取得できます。

標準テンプレートライブラリには、リストを逆方向に移動するための逆イテレータも用意されています。イテレータについてのここのすべては、逆イテレータにも等しく適用されます。

リスト を反復するのに必要なコードは、 ベクトル (2つの例を挙げるに過ぎない)を走査するのに必要なコードとは異なります。ただし、イテレータはこれらの詳細を隠します。

<! - 3 - >

メソッドbegin()は、リストの最初の要素を指すイテレータを返します。間接演算子*()は、イテレータが指すオブジェクトへの参照を取得します。 ++ 演算子は、イテレータをリストの次の要素に移動します。

イテレータがend() によって返される値と等しくなるまで、プログラムはリストを通って増加し続けます。 次のコードスニペットは、生徒のリストの先頭で始まり、それぞれの名前を表示します。

void displayStudents(list&students){//リストリストの最初の//要素を指すイテレータを割り当てます::iterator iter = students。ベギン(); // iteratorがリストの最後をヒットするまで、リストをループし続けます。iter!= students.end()){// iteratorがStudentを検索します。 cout << s。 sName << endl; //イテレータをリストの次の要素//に移動iter ++;}}

イテレータの宣言は非常に複雑になります。これはおそらく、'11標準で導入された 自動 宣言のための最良の正当化です:(auto iter = students。begin(); iter!= students。end(); iter ++){cout

これは、メソッドリストによって返されるすべての型の反復子であると宣言しています。:begin() 

、 は、前のコードスニペットに示されている苦い宣言を避けます。どのくらいクールです!

C ++プログラミング:リストを通してあなたの道を作る - ダミー

エディタの選択

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

Objective-Cでは、作成していないクラスであっても、iOSアプリケーションの既存のクラスに独自のメソッドを追加できます。クラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。たとえば、特定のアプリケーション...

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーション開発の既存クラスにメソッドを追加する方法 - ダミー

IOSアプリケーションの開発では、Objective-Cを使用すると、自分が作成していないクラスであっても、既存のクラスに独自のメソッドを追加することができます。クラスにメソッドを追加することは、特定の状況でのみ新しい動作が使用される場合に便利です。たとえば、特定のアプリケーション(たとえば、...

In App Purchase機能がiPadアプリで動作する仕組み

In App Purchase機能がiPadアプリで動作する仕組み

Apple App App Purchase機能を提供します。これにより、アプリユーザーはアプリ内から仮想アイテムを直接購入することができます。複数のレベルや環境、または仮想プロパティを持つゲームアプリケーションを開発する場合は、アプリケーションにIn App Purchase機能を追加して、レベル、環境、またはプロパティをさらに販売することを検討してください。 App Purchaseで...

エディタの選択

効果的なホームビジネスWebサイトを作成する方法 - ダミー

効果的なホームビジネスWebサイトを作成する方法 - ダミー

素晴らしいかもしれませんが、製品やサービスをさらに販売するのに役立たない場合は、時間とお金の無駄です。自宅のビジネスにとって本物の資産であるWebサイトを構築するための、実証済みの方法をいくつか試してみましょう。難しいことではありません...

マスターCSSファイルを作成する方法 - ダミー

マスターCSSファイルを作成する方法 - ダミー

多くのデザイナーがマスターHTMLコードのCSSファイルを作成し、個々のサイトのニーズに合わせて、最初からウェブサイトを構築するプロセスをスピードアップします。あなたがより多くのウェブサイトを構築するにつれて、いくつかのスタイルは標準的なデザインプラクティスの標準的な部分になります。 ...

MSN adCenterのウェブマーケティングキャンペーンのアカウントを作成する方法 - ダミー

MSN adCenterのウェブマーケティングキャンペーンのアカウントを作成する方法 - ダミー

Bing検索結果と並んでクリック単価(PPC)広告はMSN adCenterを通じて提供されます。 adCenterを使用して、Webマーケティングのニーズに合わせてアカウントとキャンペーンを作成できます。 Microsoftは、Bing Travel、adCenter Desktopなどのプログラムを追加することで、PPCサービスのインターフェース、ツール、検索品質、およびボリュームを向上させるために歩み続けています。...

エディタの選択

地中海ダイエットレシピ:フルーツサラダ - ダミー

地中海ダイエットレシピ:フルーツサラダ - ダミー

果実は地中海で豊富に生育し、地中海沿岸に沿って、アメリカ人より一般的に果実を多く食べるため、地中海の高レベルの疾病予防に貢献しています。あなたの次の食事やパーティーのために健康的なサイドディッシュのフルーツサラダを作るには、いくつかの方法があります。果物は地中海で豊富に生育し、地中海沿岸に住む人々は一般にアメリカ人よりも多くの果実を食べるため、地中海の高レベルの疾病予防に寄与します。

地中海料理ダイスレシピ:クラシックジャイロとピタ - ダミー

地中海料理ダイスレシピ:クラシックジャイロとピタ - ダミー

ジャイロとピタサンドイッチは一般的なカジュアルな食品です地中海でピザや他の地中海のサンドイッチと同じように、今日はピタサンドイッチとジャイロのさまざまなバージョンが存在します。ピタスは蒸気で作られた中央のポーチ付きの丸いパンです。