当前位置:主页 > c/c++教程 > C ++迭代器iterator

C ++迭代器iterator在string中使用方法介绍

发布:2023-03-07 09:00:01 59


本站收集了一篇相关的编程文章,网友蔚颐然根据主题投稿了本篇教程内容,涉及到C、++迭代器iterator、C、++迭代器在string使用、C ++迭代器iterator相关内容,已被464网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

C ++迭代器iterator

一、正向迭代器

【例子】

//正向迭代器
void test1()
{
	string str1 = "abcdef";
	cout << "读取字符串:" << endl;
	string::iterator it1 = str1.begin();
	while (it1 != str1.end())
	{
		cout << *it1 << " ";
		it1++;
	}
	cout << endl;
	cout << "每个字母向后移动一位:" << endl;
	string::iterator it2 = str1.begin();
	while (it2 != str1.end())
	{
		*it2 +=1;
		cout << *it2 << " ";
		it2++;
	}
	cout << endl;
}

【运行结果】

二、正向迭代器(只读数据)

const_iterator begin( ) const;

这种迭代器,只支持读,不支持修改数据。

【例子】

//只读正向迭代器
void test2()
{
	const string str1 = "abcdef";
	cout << "只能读取字符串:" << endl;
	string::const_iterator it1 = str1.begin();
	while (it1 != str1.end())
	{
		cout << *it1 << " ";
		it1++;
	}
	cout << endl;
}

【问题】

为什么不能直接在 string::iterator it 前面加const?

答:这样的话,const修饰的是it,it将无法被修改,并不是*it无法被修改。

it无法被修改的后果是无法遍历。

三、反向迭代器

作用:从后往前读。

【例子】

//反向迭代器
void test3()
{
	string str1 = "abcdef";
	cout << "反向读取字符串:" << endl;
	string::reverse_iterator it1 = str1.rbegin();
	while (it1 != str1.rend())
	{
		*it1 += 1;
		cout << *it1 << " ";
		it1++;
	}
	cout << endl;
}

【运行结果】

四、反向迭代器(只读)

【例子】

//反向迭代器(只读)
void test4()
{
	const string str1 = "abcdef";
	cout << "反向只读读取字符串:" << endl;
	string::const_reverse_iterator it1 = str1.rbegin();
	while (it1 != str1.rend())
	{
		cout << *it1 << " ";
		it1++;
	}
	cout << endl;
}

五、auto来替换这些特别长类型名

是不是感觉这些类型名特别长?别担心,用auto试试。

//auto
void test5()
{
	cout << "auto的演示" << endl;
	const string str1 = "abcdef";
	cout << "反向只读读取字符串:" << endl;
	auto it1 = str1.rbegin();
	while (it1 != str1.rend())
	{
		cout << *it1 << " ";
		it1++;
	}
	cout << endl;
}

到此这篇关于C ++迭代器iterator在string中使用方法介绍的文章就介绍到这了,更多相关C ++迭代器iterator内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!


参考资料

相关文章

  • 实例讲解小程序picker组件简单用法【附demo源码下载】

    发布:2020-02-29

    这篇文章主要介绍了微信小程序picker组件简单用法,结合实例形式详细分析了picker组件的功能、使用方法与相关注意事项,需要的朋友可以参考下


  • C语言找出数组中的特定元素的算法解析

    发布:2022-12-02

    为网友们分享了关于C语言的教程,这篇文章主要介绍了C语言中找出数组中特定元素的算法解析,包括找出数组中两个只出现一次的数字的方法,需要的朋友可以参考下


  • Java Elastic-Job分布式定时任务使用方法介绍

    发布:2023-03-12

    xxl-job 通过一个中心式的调度平台,调度多个执行器执行任务,调度中心通过 DB 锁保证集群分布式调度的一致性,这样扩展执行器会增大 DB 的压力,然而大部分公司的任务数,执行器并不多;xxl-job 提供了非常好用的监控页面甚至还有任务失败的邮件告警功能


  • RocketMQ顺序消息的原理与特点

    发布:2023-04-04

    RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等,本篇我们了解如何实现顺序消息的原理与特点


  • C++中高性能内存池的实现详解

    发布:2023-03-05

    在 C/C++ 中,内存管理是一个非常棘手的问题,我们在编写一个程序的时候几乎不可避免的要遇到内存的分配逻辑。本文将通过C++实现高性能内存池,感兴趣的可以了解一下


  • ReentrantLock源码详解:条件锁

    发布:2022-04-10

    这篇文章主要介绍了ReentrantLock源码之条件锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,下面我们来一起学习一下吧


  • C++实现教师管理系统

    发布:2022-04-16

    这篇文章主要为大家详细介绍了C++实现教师管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Android三方依赖冲突Gradle中exclude的使用

    发布:2023-03-06

    这篇文章主要介绍了Android三方依赖冲突Gradle中exclude的使用,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下


网友讨论