C++ - 迭代器
一、迭代器:
1、定义:一个可以标识序列中元素的对象; 序列可由一对迭代器表示,一个描述其首元素,另一个描述超出序列末端一个位置的元素;
2、作用:利用迭代器可以实现代码(算法)与数据的连接;
使用方:不需知道存储和访问数据的具体细节,只需对迭代器有一定了解;
数据提供方:不需为不同用户编写代码,只需为数据配备合适的迭代器;
3、标准迭代器基础操作:
p == q //当且仅当p和q指向序列中的同一个元素或都指向序列末端元素之后时为真
p != q // !( p==q)
val = *p //对p所指向的元素进行读操作
*p = val //对p所指向的元素进行写操作
p++ //使p指向序列中的下一个元素或序列末端元素之后
4、示例:
template<class Iterator>
Iterator high(Iterator first,Iterator last)
//return an iterator to the element in [first,last) that has the highest value
{
Iterator high=first;
for(Iterator p=first;p!=last;p++){
if(*high<*p)
high=p;
}
return high;
}
int count(string& s,char c){
int n=0;
string::const_iterator i=find(s.begin(),s.end(),c);
while(i!=s.end()){
i=find(++i,s.end(),c);
n++;
}
return n;
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 开发的设计和重构,为开发效率服务
· 从零开始开发一个 MCP Server!
· Ai满嘴顺口溜,想考研?浪费我几个小时
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想