迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

C++ 中的向量迭代器

作者:迹忆客 最近更新:2023/08/29 浏览次数:

本文介绍如何在 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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Arduino 中停止循环

发布时间:2024/03/13 浏览次数:444 分类:C++

可以使用 exit(0),无限循环和 Sleep_n0m1 库在 Arduino 中停止循环。

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()函数在串口监视器上显示变量值。

Arduino if 语句

发布时间:2024/03/13 浏览次数:123 分类:C++

可以使用 if 语句检查 Arduino 中的不同条件。

Arduino ICSP

发布时间:2024/03/13 浏览次数:214 分类:C++

ICSP 引脚用于两个 Arduino 之间的通信以及对 Arduino 引导加载程序进行编程。

使用 C++ 编程 Arduino

发布时间:2024/03/13 浏览次数:127 分类:C++

本教程将讨论使用 Arduino IDE 在 C++ 中对 Arduino 进行编程。

Arduino 中的子程序

发布时间:2024/03/13 浏览次数:168 分类:C++

可以通过在 Arduino 中声明函数来处理子程序。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便