Problem

2/8

벡터의 반복자

Theory Click to read/hide

반복자
컨테이너(데이터 구조)의 요소를 반복하는 한 가지 방법은 iterator(iterator ), 여러 유형이 있습니다.
 
Iterator -  «가 나타내는 데이터 구조» ; 일부 컨테이너 요소에서 (일부 컨테이너의 경우) 이전/다음 요소로 이동할 수 있습니다.

벡터는 가장 강력한 - 무작위 액세스 반복자(무작위 액세스 반복자)를 사용합니다.  랜덤 액세스 반복기는 순차 이동 외에도 벡터의 임의 요소에 액세스할 수 있습니다.

반복자의 이점
1)  요소를 삭제하고 인덱스([])를 사용하여 요소를 반복할 때 벡터를 넘지 않도록 항상 남아있는 요소의 수를 추적해야 하며 반복자를 사용하면 벡터의 끝을 나타내는 end()< /code>를 사용할 수 있습니다.
2) 이터레이터를 사용하면 벡터에서 요소를 동적으로 쉽게 제거하고 삽입할 수 있습니다. 
 
반복자 선언
1) 정수 벡터에 대한 반복자를 선언하고 벡터의 첫 번째 요소를 가리킵니다. 벡터 <int> myvector = {1, 2, 3, 4, 5}; vector <int>::iterator it = myvector.begin();
2) 정수 벡터에 대한 반복자를 선언하고 벡터의 마지막 뒤에 있는 요소를 가리킵니다. 벡터 <int> myvector = {1, 2, 3, 4, 5}; vector <int>::iterator it = myvector.end(); // 마지막 요소 다음 요소를 가리키며, vector <int>::iterator it1 = myvector.end() - 1 ; // 마지막 요소를 가리킵니다.  
값 가져오기 및 표시
반복자가 가리키는 요소를 가져오고 표시합니다. cout << *그것;  
이터레이터 위치 이동
반복자 위치를 3위치 앞으로 이동합니다. <예비> 사전(it, 3);  
기존 반복자에서 새 반복자 만들기
기존 반복자를 기반으로 새 반복자를 만들어 3개 위치로 이동합니다. auto it1 = next(it, 3);  
반복자를 사용하여 벡터 값 표시
vectorint::iterator it; for (it = myvector.begin(); it != myvector.end(); ++it) {   cout<<*it<<" "  }
벡터 순회
마지막 요소에서 첫 번째 요소로 벡터를 트래버스하기 위해 역 반복자reverse_iterator가 사용되며 다음과 같이 얻습니다.
1) rbegin() -  벡터의 마지막 요소를 가리키는 역방향 반복자를 반환하고 ++ 작업을 적용하면 이전 요소로 전환됩니다.
2) rend() -  벡터의 이전 요소를 가리키는 역 반복자를 반환합니다. ++ 연산을 적용하면 전환이 발생합니다.  다음에. vectorint::reverse_iterator it = myvector.rbegin();  // 마지막 요소를 가리킴 vectorint::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!