如何利用迭代器获取vector的最后一个元素
来源:互联网 发布:网络关于蜂王蜂后寓意 编辑:程序博客网 时间:2024/05/16 07:48
错误观点:通过vector::end()能获取指向最后一个元素的指针。
实际上,通过上面的方法获取的是指向末尾元素再下一个位置的指针。
例子:
#include <iostream>#include <vector>using namespace std;int main(){ vector<int> Int; Int.push_back(1); Int.push_back(5); vector<int>::iterator it = Int.end(); cout << *it << endl; return 0;}
程序输出的不是5,而是131159。表明通过Int.end()并不能获取指向容器Int中尾元素的指针。
那么如何操作才正确?实验证明,令迭代器it = Int.end() - 1即可。
程序:
#include <iostream>#include <vector>using namespace std;int main(){ vector<int> Int; Int.push_back(1); Int.push_back(5); vector<int>::iterator it = Int.end() - 1; cout << *it << endl; return 0;}
输出5
注意的是,这里的“-1”,实际上是-sizeof(int)
- 如何利用迭代器获取vector的最后一个元素
- vector 如何得到最后一个元素
- vector容器的end是指向最后一个元素的下一个位置,使用时要将迭代器减1,才能获取到最后一个
- JavaScript 获取数组的最后一个元素
- 容器篇:取vector最后一个元素的方法
- 容器篇:取vector最后一个元素的方法
- php 获取数组第一个元素 以及最后一个元素 && 最后一个元素的键名
- jquery如何获取第一个或最后一个子元素?
- jquery如何获取第一个或最后一个子元素?
- C++获得vector最后一个元素
- 获取数组最后一个元素的key值
- 使用mongodb的aggregate实现获取数组最后一个元素
- vector.end()指向的是最后一个元素的下一个位置,所以访问最后一个元素的正确操作为:vector.end() - 1;
- [Day2]如何得到一个数组最后元素的key?
- JAVA 如何获取Vector变量中指定位置的元素
- js获取相同name的元素个数和获取其中任意一个元素的值(获取最后一个元素值)
- awk命令的使用(三)获取数组的最后一个元素
- mybatis foreach里用bind只获取集合的最后一个元素问题
- 暂停寻找联合创始人,先让“临时工”给你帮忙
- GUI 剖析之 系统托盘图标的实现
- 利剑级别打造
- POJ 1050 To the Max
- 表的维护和改造 【数据库高效编程 - 学习笔记 第五章】
- 如何利用迭代器获取vector的最后一个元素
- 程序员面试题精选100题(23)-跳台阶问题
- string大小写转换函数
- 项目经理 个人想法
- 2012 SCI收录期刊及影响因子(2/10)
- GUI 剖析之 获取桌面位图的实现(屏保应用)
- 编写代码不能不写注释
- 大项目感受
- 2011级-csdn-java-张侃— JavaWEB开发-国际化(一)