C++ 中的向量迭代器
本文介绍如何在 C++ 中迭代向量。
C++ 提供了许多迭代向量的方法。 这些方法称为迭代器,它指向STL容器的内存地址; 本文介绍了在 C++ 中迭代向量的不同方法。
使用 begin() 和 end() 方法在 C++ 中迭代向量
begin()
方法返回容器的起点,end()
方法返回容器的端点。 这两种方法都可以在迭代器显示或使用向量的值之后使用。
参见示例:
#include<iostream>
#include<iterator>
#include<vector>
using namespace std;
int main()
{
vector<char> DemoVector = { 'f', 'q', 'l', 'j', 'i', 'y', 'i', '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 : f q l j i y i k
使用 advance() 方法在 C++ 中迭代向量
advance()
方法用于递增迭代器位置,直到参数中给出特定数字。 让我们看看它是如何工作的。
#include<iostream>
#include<iterator>
#include<vector>
using namespace std;
int main()
{
vector<char> DemoVector = { 'f', 'q', 'l', 'j', 'i', 'y', 'i', '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 方法将迭代器的位置增加到第六个元素 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 = { 'f', 'q', 'l', 'j', 'i', 'y', 'i', '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 : i
Element of new iterator using prev() is : i
在 C++ 中使用 inserter() 方法迭代向量
此方法在迭代向量时将元素插入向量中。 该方法有两个参数,第一个是容器,另一个是元素将插入的位置。
现在让我们尝试一个在迭代时向向量插入元素的示例。
#include<iostream>
#include<iterator>
#include<vector>
using namespace std;
int main() {
vector<char> DemoVector1 = { 'f', 'q', 'l', 'j', 'i', 'y', 'i', '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 : f q l j i y i k . c o m
相关文章
Arduino 复位
发布时间:2024/03/13 浏览次数:315 分类:C++
-
可以通过使用复位按钮,Softwarereset 库和 Adafruit SleepyDog 库来复位 Arduino。
Arduino 的字符转换为整型
发布时间:2024/03/13 浏览次数:181 分类:C++
-
可以使用简单的方法 toInt()函数和 Serial.parseInt()函数将 char 转换为 int。
Arduino 串口打印多个变量
发布时间:2024/03/13 浏览次数:381 分类:C++
-
可以使用 Serial.print()和 Serial.println()函数在串口监视器上显示变量值。