イテレータ code>), これにはいくつかの種類があります。 反復子 - «が示すデータ構造» ;一部のコンテナ要素で、(一部のコンテナでは) 前/次の要素に移動できます。 ベクトルは最も強力な - random-access iterator(random-access Iterator) を使用します。ランダム アクセス イテレータは、順次移動に加えて、ベクトルの任意の要素にアクセスできます。 イテレータの利点 1) 要素を削除し、インデックス ([]) を使用して要素を反復する場合、ベクトルを超えないように、残りの要素の数を常に追跡する必要があり、反復子を使用すると、ベクトルの終わりを示す end()< /code> を使用できます。 2) イテレータを使用すると、ベクター内の要素を動的に削除および挿入することが簡単にできます。 イテレータ宣言 1) 整数ベクトルの反復子を宣言し、それをベクトルの 最初の 要素にポイントします。 ベクトル ; myvector = { 1, 2, 3, 4, 5 }; vector <int>::iterator it = myvector.begin(); プレ> 2) 整数ベクトルのイテレータを宣言し、ベクトル内の最後の の後の要素を指すようにします。 ベクトル ; myvector = { 1, 2, 3, 4, 5 }; vector <int>::iterator it = myvector.end(); // 最後の要素の後の要素を指し、 vector <int>::iterator it1 = myvector.end() - 1 ; // 最後の要素を指しています。 値の取得と表示 イテレータが指す要素を取得して表示します。 cout << *それ; イテレータの位置を移動 イテレータの位置を 3 つ前に移動します。 <プレ> 前進(それ、3); プレ> 既存の反復子から新しい反復子を作成する 既存の反復子に基づいて新しい反復子を作成し、3 桁進めます。 auto it1 = next(それ, 3); イテレータを使用したベクトル値の表示 vector<int>::イテレータ it; for (それ = myvector.begin(); それ != myvector.end(); ++it) { cout<<*it<<" "; } プレ> ベクトル トラバーサル 最後の要素から最初の要素までベクトルをたどるには、逆反復子 reverse_iterator が使用されます。これは次のように取得されます: 1) rbegin() - ベクトルの最後の要素を指す逆反復子を返し、++ 操作を適用すると、前の要素に遷移します。 2) rend() - ベクトルの前の要素を指す逆反復子を返します。++ 操作を適用すると、遷移が発生します 次へ。 vector<int>::reverse_iterator it = myvector.rbegin(); // 最後の要素を指す vector<int>::reverse_iterator it = myvector.rend(); // 要素を指し、 // 最初のものの前に来て、 プレ>
random-access Iterator
[]
end()< /code> を使用できます。 2) イテレータを使用すると、ベクター内の要素を動的に削除および挿入することが簡単にできます。 イテレータ宣言 1) 整数ベクトルの反復子を宣言し、それをベクトルの 最初の 要素にポイントします。 ベクトル ; myvector = { 1, 2, 3, 4, 5 }; vector <int>::iterator it = myvector.begin(); プレ> 2) 整数ベクトルのイテレータを宣言し、ベクトル内の最後の の後の要素を指すようにします。 ベクトル ; myvector = { 1, 2, 3, 4, 5 }; vector <int>::iterator it = myvector.end(); // 最後の要素の後の要素を指し、 vector <int>::iterator it1 = myvector.end() - 1 ; // 最後の要素を指しています。 値の取得と表示 イテレータが指す要素を取得して表示します。 cout << *それ; イテレータの位置を移動 イテレータの位置を 3 つ前に移動します。 <プレ> 前進(それ、3); プレ> 既存の反復子から新しい反復子を作成する 既存の反復子に基づいて新しい反復子を作成し、3 桁進めます。 auto it1 = next(それ, 3); イテレータを使用したベクトル値の表示 vector<int>::イテレータ it; for (それ = myvector.begin(); それ != myvector.end(); ++it) { cout<<*it<<" "; } プレ> ベクトル トラバーサル 最後の要素から最初の要素までベクトルをたどるには、逆反復子 reverse_iterator が使用されます。これは次のように取得されます: 1) rbegin() - ベクトルの最後の要素を指す逆反復子を返し、++ 操作を適用すると、前の要素に遷移します。 2) rend() - ベクトルの前の要素を指す逆反復子を返します。++ 操作を適用すると、遷移が発生します 次へ。 vector<int>::reverse_iterator it = myvector.rbegin(); // 最後の要素を指す vector<int>::reverse_iterator it = myvector.rend(); // 要素を指し、 // 最初のものの前に来て、 プレ>
reverse_iterator
rbegin()
++
rend()
N
1000 ms 256 Mb Rules for program design and list of errors in automatic problem checking