C++의 벡터 반복자

Sheeraz Gul 2023년10월12일
  1. begin()end() 메서드를 사용하여 C++에서 벡터를 반복
  2. advance() 메서드를 사용하여 C++에서 벡터를 반복합니다.
  3. next()prev() 메서드를 사용하여 C++에서 벡터를 반복
  4. inserter() 메서드를 사용하여 C++에서 벡터를 반복합니다.
C++의 벡터 반복자

이 튜토리얼은 C++에서 벡터를 반복하는 방법을 보여줍니다.

C++는 벡터를 반복하는 많은 방법을 제공합니다. 이러한 메서드를 STL 컨테이너의 메모리 주소를 가리키는 반복자라고 합니다. 이 자습서에서는 C++에서 벡터를 반복하는 다양한 방법을 보여줍니다.

begin()end() 메서드를 사용하여 C++에서 벡터를 반복

begin() 메서드는 컨테이너의 시작점을 반환하고 end() 메서드는 컨테이너의 끝점을 반환합니다. 이 두 가지 방법 모두 반복자가 벡터 값을 표시하거나 사용한 후에 사용할 수 있습니다.

예를 참조하십시오.

#include <iostream>
#include <iterator>
#include <vector>
using namespace std;
int main() {
  vector<char> DemoVector = {'d', 'e', 'l', 'f', 't', 's', 't', 'a', 'c', 'k'};

  // Declare the iterator to a vector
  vector<char>::iterator ptr;

  // use begin() and end() to dispaly the members of the vector
  cout << "The vector values are : ";
  for (ptr = DemoVector.begin(); ptr < DemoVector.end(); ptr++)
    cout << *ptr << " ";

  return 0;
}

위의 코드는 begin()end() 반복자 메서드를 사용하여 벡터 값을 표시합니다. 출력을 참조하십시오.

The vector Values are : d e l f t s t a c k

advance() 메서드를 사용하여 C++에서 벡터를 반복합니다.

advance() 메서드는 특정 숫자가 인수에 제공될 때까지 반복자 위치를 증가시키는 데 사용됩니다. 어떻게 작동하는지 봅시다.

#include <iostream>
#include <iterator>
#include <vector>
using namespace std;
int main() {
  vector<char> DemoVector = {'d', 'e', 'l', 'f', 't', 's', 't', 'a', 'c', 'k'};

  // Declare the iterator to a vector
  vector<char>::iterator ptr = DemoVector.begin();

  // Use advance() to increment iterator position to 6th element
  advance(ptr, 5);

  cout << "The element after incrementing the iterator position is : ";
  cout << *ptr << " ";

  return 0;
}

위의 코드는 advance 메서드를 사용하여 반복자의 위치를 6번째 요소 s로 증가시킵니다. 출력을 참조하십시오.

The element after incrementing the iterator position is : s

next()prev() 메서드를 사용하여 C++에서 벡터를 반복

next() 메서드는 새 반복자를 반환하는 데 사용되며 해당 반복자는 인수에서 언급된 위치를 진행한 후 가리킵니다. 유사하게, prev() 메서드는 새 반복자를 반환하는 데 사용되며 해당 반복자는 인수에서 언급된 위치를 감소시킨 후 가리킵니다.

nextprev 방법을 사용하여 벡터를 반복해 봅시다.

#include <iostream>
#include <iterator>
#include <vector>
using namespace std;
int main() {
  vector<char> DemoVector = {'d', 'e', 'l', 'f', 't', 's', 't', 'a', 'c', 'k'};

  // Declaring iterators to a vector
  vector<char>::iterator ptr = DemoVector.begin();
  vector<char>::iterator ftr = DemoVector.end();

  // Use next() method to return new iterator points to the 5th element
  auto DemoIterator1 = next(ptr, 4);

  // Use prev() method to return new iterator points to 4th element
  auto DemoIterator2 = prev(ftr, 4);

  // Display next iterator position
  cout << "Element of new iterator using next() is : ";
  cout << *DemoIterator1 << " ";
  cout << endl;

  // Display prev iterator position
  cout << "Element of new iterator using prev() is : ";
  cout << *DemoIterator2 << " ";
  cout << endl;

  return 0;
}

위의 코드는 next()prev() 메서드를 사용하여 벡터를 반복합니다. 출력을 참조하십시오.

Element of new iterator using next() is : t
Element of new iterator using prev() is : t

inserter() 메서드를 사용하여 C++에서 벡터를 반복합니다.

이 메서드는 벡터를 반복하면서 요소를 벡터에 삽입합니다. 이 메서드는 두 개의 매개변수를 사용합니다. 첫 번째는 컨테이너이고 다른 하나는 요소가 삽입될 위치입니다.

이제 반복하는 동안 벡터에 요소를 삽입하는 예제를 시도해 보겠습니다.

#include <iostream>
#include <iterator>
#include <vector>
using namespace std;
int main() {
  vector<char> DemoVector1 = {'d', 'e', 'l', 'f', 't', 's', 't', 'a', 'c', 'k'};
  vector<char> DemoVector2 = {'.', 'c', 'o', 'm'};

  // Declare iterator to a vector
  vector<char>::iterator ptr = DemoVector1.begin();

  // Use advance to set the position
  advance(ptr, 10);

  // copy 1 vector elements into other using inserter()
  copy(DemoVector2.begin(), DemoVector2.end(), inserter(DemoVector1, ptr));

  // Display the new vector elements
  cout << "The new vector after insertion of elements is : ";
  for (char &a : DemoVector1) cout << a << " ";

  return 0;
}

위의 코드는 반복하는 동안 한 벡터의 요소를 특정 위치의 다른 벡터에 삽입합니다. 출력을 참조하십시오.

The new vector after insertion of elements is : d e l f t s t a c k . c o m
작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

관련 문장 - C++ Vector