C++中vector迭代器

这篇具有很好参考价值的文章主要介绍了C++中vector迭代器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

迭代器(iterator)是一种用于遍历数据集合的的对象。它提供了一种访问数据集合中元素的方式,而无需暴露数据集合内部的细节。使用迭代器,我们可以对数据集合中的每个元素进行处理,而无需将整个数据集合加载到内存中。这样可以节省内存空间,并且在处理大型数据集合时可以提高处理效率。

C++ STL(标准模板库)中的容器类都提供了迭代器,用于访问容器内部的元素。迭代器是一个类或者一个指针,它可以指向容器中的一个元素,然后遍历容器中的所有元素。

C++ STL中的迭代器通常具有以下五个成员函数:

  • operator*():用于返回当前迭代器指向的元素的引用。
  • operator->():用于返回当前迭代器指向的元素的指针。
  • operator++():用于将迭代器移动到下一个元素。
  • operator--():用于将迭代器移动到上一个元素。
  • operator==()operator!=():用于比较两个迭代器是否相等。

C++ STL中的容器类,如vector、list、map、set等都提供了迭代器,可以通过调用容器的成员函数begin()和end()获取指向容器第一个元素和最后一个元素的迭代器。

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector<int> v = {1, 2, 3, 4, 5};

    // 遍历vector中的所有元素
    for (auto it = v.begin(); it != v.end(); ++it)
    {
        cout << *it << " ";
    }
    cout << endl;

    return 0;
}

该代码定义了一个vector<int>对象v,并使用auto关键字定义了一个迭代器it来遍历vector中的所有元素。在每次迭代中,使用*it访问迭代器指向的元素。最后输出所有元素的值。

vector是一个动态数组容器,可以使用迭代器来访问其元素。vector有两种类型迭代器:正向迭代器和反向迭代器。

正向迭代器遍历:

#include<iostream>
#include<vector>
using namespace std;
int main() {
	vector<int> v = { 1,2,3,4,5 };
	vector<int>::iterator it;
	for (it = v.begin(); it != v.end(); ++it) {
		cout << *it << " ";
	}
	return 0;
}

输出结果:1,2,3,4,5

在上面的示例中,我们首先创建一个vector对象v,并使用v.begin()和v.end()方法获取迭代器的起始和结束位置。然后我们使用一个迭代器it来遍历vector的每个元素。通过使用*it来获取迭代器指向的元素的值。

我们也可以使用auto关键字来简化迭代器的定义:

#include<iostream>
#include<vector>
using namespace std;
int main() {
	vector<int> v = { 1,2,3,4,5 };
	for (auto it = v.begin(); it != v.end(); ++it) {
		cout << *it << " ";
	}
	return 0;
}

反向迭代器遍历:

反向迭代器遍历vector的方法与正向迭代器类似,只需使用rbegin()和rend()方法获取反向迭代器的起始和结束位置。以下是一个使用反向迭代器遍历vector数组的示例:

#include<iostream>
#include<vector>
using namespace std;
int main() {
	vector<int> v = { 1,2,3,4,5 };
	vector<int>::reverse_iterator it;
	for (it = v.rbegin(); it != v.rend(); ++it) {
		cout << *it << " ";
	}
	return 0;
}

输出结果:5,4,3,2,1文章来源地址https://www.toymoban.com/news/detail-513595.html

到了这里,关于C++中vector迭代器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++迭代器(STL迭代器)iterator详解

    要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类似。 迭代器按照定义方式分

    2024年02月03日
    浏览(45)
  • Elasticsearch:ESQL 简介 — 一种用于灵活、迭代分析的新查询语言

    作者:Seth Payne 特别声明 :截止撰写该博文,在目前的公开发行版中,该功能还不能公开测试。这个功能将在未来的发行版中发布。 长期以来,Elastic Platform 一直被视为搜索用例和机器生成数据的分析系统。 分析专注于处理摄入的数据,其中重要的思想是如何在 Elasticsearch

    2023年04月23日
    浏览(34)
  • 设计模式之迭代器模式(Iterator)的C++实现

    在软件开发过程中,操作的集合对象内部结构常常变化,在访问这些对象元素的同时,也要保证对象内部的封装性。迭代器模式提供了一种利用面向对象的遍历方法来遍历对象元素。迭代器模式通过抽象一个迭代器类,不同的对象继承自迭代器类,外部通过统一接口访问元素

    2024年02月11日
    浏览(46)
  • (三)行为模式:4、迭代器模式(Iterator Pattern)(C++示例)

    目录 1、迭代器模式(Iterator Pattern)含义 2、迭代器模式的UML图学习 3、迭代器模式的应用场景 4、迭代器模式的优缺点 (1)优点 (2)缺点 5、C++实现迭代器模式的实例 1、迭代器模式(Iterator Pattern)含义 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元

    2024年02月11日
    浏览(34)
  • C++中vector迭代器

    迭代器 (iterator)是一种用于遍历数据集合的的对象。它提供了一种访问数据集合中元素的方式,而无需暴露数据集合内部的细节。使用迭代器,我们可以对数据集合中的每个元素进行处理,而无需将整个数据集合加载到内存中。这样可以节省内存空间,并且在处理大型数据

    2024年02月11日
    浏览(47)
  • C++设计模式_21_Iterator 迭代器(理解;面向对象的迭代器已过时;C++中使用泛型编程的方式实现)

    Iterator 迭代器也是属于“数据结构”模式。 GoF中面向对象的迭代器已经过时,C++中目前使用泛型编程的方式实现,其他语言还在使用面向对象的迭代器。 在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以

    2024年02月07日
    浏览(57)
  • C++之std::list<string>::iterator迭代器应用实例(一百七十九)

    简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏: Audio工程师进阶系列 【 原创干货持续更新中…… 】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:An

    2024年02月12日
    浏览(58)
  • 【C++】vector模拟实现+迭代器失效

    铁汁们,今天给大家分享一篇vector模拟实现 + 迭代器失效,来吧,开造⛳️ 指向最后一个空间的下一个位置 💡 iterator _endofstorage 指向存储第一个有效数据空间的位置 💡 iterator _start 指向存储最后一个有效数据空间的下一个位置 💡 iterator _finish 在成员变量声明处给缺省值,

    2024年02月21日
    浏览(36)
  • 【C++】vector的使用 以及 迭代器失效问题

    前言 经过前面string的学习,我们已经掌握了许多string的类函数,vector中许多类函数与string中的类函数使用起来相似,例如迭代器的使用在所有的容器中使用都一样,这里我们不再介绍,下面我们学习一些vector类的一些常用的函数。 1.vector的文档介绍 2. vector在C++中表示可变大

    2023年04月24日
    浏览(42)
  • [C++] STL_vector 迭代器失效问题

    **迭代器的主要作用就是让算法能够不用关心底层数据结构,其底层实际就是一个指针,或者是对指针进行了封装, 比如: string的迭代器就是原生指针char ,vector的迭代器就是原生态指针T 。 因此 迭代器失效,实际就是迭代器底层对应指针所指向的空间被销毁了,而使用一块

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包