Problem

2/8

向量中的迭代器

Theory Click to read/hide

迭代器
迭代容器 (数据结构)中的元素的一种方法是迭代器迭代器), 有多种类型。
 
Iterator - “laquo;表示”的数据结构;在某些容器元素上,并且(对于某些容器)可以导航到上一个/下一个元素。

vector使用了最强大的- random-access iterator(random-access Iterator)。 除了顺序移动之外,随机访问迭代器还可以访问向量的任意元素。

迭代器的好处
1) 在删除元素和使用索引([])迭代元素时,我们需要一直跟踪剩余元素的数量,以免超出向量,而使用迭代器,您可以使用end()< /code>表示vector的结束。
2) 使用迭代器,您可以轻松地动态删除和插入向量中的元素。 
 
迭代器声明
1) 声明一个整数向量的迭代器并将其指向向量中的 first 元素。 向量<整数>我的向量 = { 1, 2, 3, 4, 5 }; vector ::iterator it = myvector.begin();
2) 声明一个整数向量的迭代器,并将其指向向量中 last  之后的元素。 向量<整数>我的向量 = { 1, 2, 3, 4, 5 }; vector ::iterator it = myvector.end(); // 指向最后一个之后的元素, vector ::iterator it1 = myvector.end() - 1 ; // 指向最后一个元素。  
获取并显示一个值
获取并显示迭代器指向的元素。 输出 << *它;  
移动迭代器位置
将迭代器位置向前移动 3 个位置。 <前> 提前(它,3);  
从现有迭代器创建新迭代器
在现有迭代器的基础上创建一个新的迭代器,前进 3 个位置。 auto it1 = next(it, 3);  
使用迭代器显示向量值
vector::iterator it; 对于 (it = myvector.begin(); it != myvector.end(); ++it) {   cout<<*它<<" ";  }
向量遍历
为了从最后一个元素到第一个元素遍历向量,使用了一个反向迭代器 reverse_iterator,它通过以下方式获得:
1) rbegin() - 返回一个指向向量最后一个元素的反向迭代器,应用++操作导致过渡到前一个元素;
2) rend() -  返回一个指向vector前一个元素的反向迭代器,++操作的应用导致转换 到下一个。 vector::reverse_iterator it = myvector.rbegin();  // 指向最后一个元素 vector::reverse_iterator it = myvector.rend();    // 指向一个元素,   // 在第一个之前,

Problem

给你一个整数序列。 使用 reverse_iterator编写一个反转向量的程序。

输入
第一个给定的数字 N - 序列中元素的数量 (1<= N <= 100)。然后写N个数字,中间用空格隔开。
 
输出
在一行中输出结果向量的所有元素,用空格分隔它们。
 
例子
<头> <正文>
# 输入 输出
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!