利用reverse_iterator删除string末尾元素
来源:互联网 发布:软件项目建议书模板 编辑:程序博客网 时间:2024/05/16 00:55
先看代码:
#include <iostream>#include <string>using namespace std;int main(){string str = "Uranux~";string::reverse_iterator strRIter = str.rbegin(); // 指向最后一个元素string::iterator retIter = str.erase(--strRIter.base()); // 接收返回的iteratorstrRIter = string::reverse_iterator(retIter); // 修复reverse_iteratorcout << str << endl;return 0;}
注意以下几点:
1. 对于reverse_iterator,rbegin()指向最后一个元素;
2. 多种stl容易的erase和insert方法只接收和返回iterator,不接收reverse_iterator,所以需要进行转换,reverse_iterator::base()可以返回一个对应的RandomIterator,可以隐式转换为iterator;
3. reverse_iterator::base()与reverse_iterator本身的指向并不一致,而是有错位(当reverse_iterator指向rbegin(),即最后一个元素位置的时候,reverse_iterator::base()指向的是最后一个元素后面的一个位置),所以我在这里用了“--strRIter.base()”;
4. erase返回的iterator必须保留,因为erase方法会破坏原来的reverse_iterator,我们要利用返回的iterator重新构造之。
2 0
- 利用reverse_iterator删除string末尾元素
- 通过reverse_iterator删除元素
- 如何在遍历中使用 iterator/reverse_iterator 删除元素
- 如何在遍历中使用 iterator/reverse_iterator 删除元素
- STL中 如何在遍历中使用 iterator/reverse_iterator 删除元素
- 如何利用Element元素在末尾添加节点
- 关于Vector删除末尾末尾元素时出现的怪现象
- C++:如何删除string对象的末尾非数字字符
- reverse_iterator
- 反向迭代器reverse_iterator与正向迭代器iterator之间的转换(list反向删除元素的方法)
- 利用Iterator删除集合元素
- 利用单链表删除重复元素
- reverse_iterator的插入和删除操作
- String对象和StringBuffer对象末尾追加元素空间效率问题
- 删除字符串末尾*
- Java之String中删除指定元素
- javaScript学习笔记——数组末尾元素的增加和删除
- 利用节点添加和删除元素
- bash多行注释
- RMQ的ST算法学习小记 Poj 3264 Balanced Lineup
- 你的SQL2000有一天突然启动不了了,总找不到原因
- unicode与UTF8
- 浏览器的工作原理:新式网络浏览器幕后揭秘{转}
- 利用reverse_iterator删除string末尾元素
- stat函数和文件类型
- eclipse使用技巧
- 项目实施与管理的几点建议
- 串匹配算法KMP详解
- 动态规划算法
- 2013的收获
- ARM中的RO、RW和ZI DATA说明
- 集线器,交换机,路由器的比较