字符串类迭代器

本文介绍了C++中自定义字符串类(String)及其迭代器(Iterator)的实现。通过迭代器,可以对字符串进行遍历操作。迭代器设计包括开始、结束、迭代递增和元素访问等关键函数。示例代码展示了一个简单的使用迭代器遍历字符串的例子。

#include
#include//C++ string
/*
迭代器:
1.作用:为容器提供统一的遍历方式,再提供遍历的前提下,使得使用人员无法清楚内部的存储结构,加强封装性。
2.面向对象的指针:作为对象却做一个指针在做的事情。

由于字符串类型,物理地址连续,采用下标访问的方式,更快,更方便,更好。所以做了优化。

总结:
迭代器的设计应该由容器开发人员来进行开发,根据不同容器的特点设计不同设计方案的迭代器,必须要有4个函数,
1.开始迭代的函数
2.结束迭代的函数
3.进行迭代的函数,也就是++;
4.访问的函数,也就是*,解引用。
*/
class String;
class Iterator
{
public:
Iterator(String * ptr,int idx)
:pstr(ptr),index(idx)
{ }
bool operator != (const Iterator& rhs)
{
return index != rhs.index;
}
Iterator& operator ++ ()
{
index++;
return *this;
}
Iterator operator ++ (int)
{
Iterator tmp(*this);
index++;
return tmp;
}
char & operator * ();
private:
String * pstr;
int index;
};

class String
{
public:
typedef Iterator iterator;
String(const char * ptr)
{
mptr = new char

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值