Problem

2/8

ベクトル内の反復子

Theory Click to read/hide

イテレータ
コンテナ(データ構造)内の要素を反復処理する 1 つの方法は、イテレータイテレータ), これにはいくつかの種類があります。
 
反復子 - «が示すデータ構造» ;一部のコンテナ要素で、(一部のコンテナでは) 前/次の要素に移動できます。

ベクトルは最も強力な - 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();    // 要素を指し、   // 最初のものの前に来て、

Problem

一連の整数が与えられます。   reverse_iterator を使用してベクトルを反転するプログラムを作成してください。

入力
最初に指定された数値 N - シーケンス内の要素の数 (1<= N <= 100)。次に、N 個の数字がスペースで区切られて書き込まれます。
 
出力
結果のベクトルのすべての要素を、スペースで区切って 1 行に出力します。
 
<頭> <本体>
# 入力 出力
1 5
1 2 3 4 5
5 4 3 2 1
1
#include <iostream>            
2
#include <vector>            
3
using namespace std;            
4
int main()            
5
{            
6
    int n;            
7
    vector<int> myvector;                
8
    cin >> n;            
9
    for(int i=0;i<n;i++)            
10
    {            
11
        int a;            
12
        cin >> a;            
13
        myvector.push_back(a);            
14
    }            
15
    vector<int>::reverse_iterator it;            
16
17
    {            
18
        cout << *it << " ";            
19
    }            
20
 }            

     

Program check result

To check the solution of the problem, you need to register or log in!