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
相关文章
使用 C++ 将文件读入二叉搜索树
发布时间:2023/08/27 浏览次数:52 分类:C++
-
本文将讨论将文件读入 C++ 中的二叉搜索树。 首先,我们将快速讨论二叉搜索树及其操作。稍后我们将看到如何将文件读入二叉搜索树。C++ 中的二叉搜索树
C++中逐级打印二叉树中的数据
发布时间:2023/08/27 浏览次数:183 分类:C++
-
二叉树的逐层遍历称为广度优先遍历。 本教程将教您如何使用 C++ 逐级打印二叉树中的数据,并让您熟悉执行此任务的不同方法。
用 C++ 构建解析树
发布时间:2023/08/27 浏览次数:100 分类:C++
-
本文将教授三种主要的 C++ 方法来在 C++ 中构建解析树。 第一种方法使用选择语句 if (条件) 语句和 if (条件) 语句 else 语句。
用 C++ 下载文件
发布时间:2023/08/27 浏览次数:199 分类:C++
-
本文介绍如何使用 C++ 下载文件。用 C++ 下载文件 使用 C++ 下载文件是一项简单的操作,可以使用 win32 API URLDownloadToFile 来完成。
C++ 函数末尾的常量
发布时间:2023/08/27 浏览次数:197 分类:C++
-
本文介绍在 C++ 函数末尾使用 const 关键字。C++ 函数末尾的 const 关键字 const 成员函数是一旦声明就不再更改或修改的函数。
C++ 模板多种类型
发布时间:2023/08/27 浏览次数:72 分类:C++
-
本文介绍了 C++ 中多类型模板的使用。C++ 模板多种类型 C++ 中的模板可以定义为创建通用函数和类的公式蓝图。
C++ 类中的辅助函数
发布时间:2023/08/27 浏览次数:73 分类:C++
-
本文介绍如何在 C++ 类中实现辅助函数。类中的 C++ 辅助函数 辅助函数是一种不由最终用户实例化的函数,但提供在另一个类内部使用的有用功能。
C++ 中的结构体继承
发布时间:2023/08/27 浏览次数:84 分类:C++
-
结构体和类很相似,但不同之处在于它们对面向对象编程中其他类或函数的可访问性。默认情况下,结构被指定为公共的,而类是私有的。 并且在继承中,我们不能继承私有指定的类; 我们必