博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Effective_STL 学习笔记(二十七) 用 distance 和 advance 把 const_iterator 转化成 iterator...
阅读量:5952 次
发布时间:2019-06-19

本文共 795 字,大约阅读时间需要 2 分钟。

 

并不存在从 const_iterator 到 iterator 之间的隐式转换

一种安全的、可移植的方法获取他所对应的 iterator:

1   typedef deque
IntDeque;     // 方便的typedef2   typedef IntDeque::iterator Iter;3   typedef IntDeque::const_iterator ConstIter;4 5   InDeque d;6   ConstIter ci;7   . . .8   Iter i( d.begin() );         // 初始化 i 为 d.begin()9   advance( i, distance(i, ci) );    // 把 i 移到指向 ci 的位置

要得到与 const_iterator 指向同一位置的 iterator,首先将 iterator 指向容器的起始位置,然后把它向前移到和 const_iterator 距离容器起始位置的偏移量一样的位置即可。

这个任务得到两个函数模板 advance 和 distance 的帮助,他们都在<iterator>中声明

distance 返回两个指针指向同一个容器的 iterator 之间的距离,

advance 则用于将一个 iterator 移动到指定的距离,

如果i和ci指向同一个容器,表达式advance(i, distance(i, ci))会将i移动到与 ci 相同的位置 

显示的指明 distance 调用的模板参数类型

1   advance( i, distance
(i, ci) );

 

转载于:https://www.cnblogs.com/kidycharon/p/10033132.html

你可能感兴趣的文章
转载:JS进度条
查看>>
面向切面编程(AOP)的理解
查看>>
【转】远程桌面 剪切板复制文件失效解决方法
查看>>
SQL Server差异备份的备份/还原原理
查看>>
java 内部类
查看>>
leetcode - Search in Rotated Sorted Array II
查看>>
coursera课程Text Retrieval and Search Engines之Week 2 Overview
查看>>
如何导出已有的谷歌插件,又如何把导出的插件安装到360浏览器中,又如何对插件小修小改?...
查看>>
[PWA] Enable Push Notification in your web app
查看>>
【转载】JS中bind方法与函数柯里化
查看>>
隐藏与显示铵钮
查看>>
H5版俄罗斯方块(3)---游戏的AI算法
查看>>
PCL深度图像(2)
查看>>
Cisco 2960交换机配置
查看>>
EBS条形码打印
查看>>
zookeeper常用命令
查看>>
关于日志打印的几点建议以及非最佳实践
查看>>
scheduler 基本原理
查看>>
cocos JS 定时器
查看>>
PHP-"php://(类型)"访问各个输入/输出流以及全局变量$HTTP_RAW_POST_DATA讲解
查看>>