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() 메서드는 새 반복자를 반환하는 데 사용되며 해당 반복자는 인수에서 언급된 위치를 감소시킨 후 가리킵니다.
next 및 prev 방법을 사용하여 벡터를 반복해 봅시다.
#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