HOWTO · C++

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