如何利用迭代器获取vector的最后一个元素
2012-11-21 20:36
495 查看
错误观点:通过vector::end()能获取指向最后一个元素的指针。
实际上,通过上面的方法获取的是指向末尾元素再下一个位置的指针。
例子:
程序输出的不是5,而是131159。表明通过Int.end()并不能获取指向容器Int中尾元素的指针。
那么如何操作才正确?实验证明,令迭代器it = Int.end() - 1即可。
程序:
输出5
注意的是,这里的“-1”,实际上是-sizeof(int)
实际上,通过上面的方法获取的是指向末尾元素再下一个位置的指针。
例子:
#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容器的end是指向最后一个元素的下一个位置,使用时要将迭代器减1,才能获取到最后一个
- jquery如何获取第一个或最后一个子元素?
- Java中如何利用Selenium获取元素分析网页内容
- 如何获取父元素下的最后一个子元素或者第一个子元素
- Java中如何利用Selenium获取元素分析网页内容
- vector 如何得到最后一个元素
- jquery如何获取第一个或最后一个子元素?
- jquery如何获取第一个或最后一个子元素?
- Java中如何利用Selenium获取元素分析网页内容
- C++ 获取vector容器最后一个元素
- JAVA 如何获取Vector变量中指定位置的元素
- 如何利用C++ vector的sort算法对元素是自定义类型进行排序
- jquery如何获取第一个或最后一个子元素?
- vector中利用迭代器删除满足一定条件的元素或者值
- 移动应用如何利用社交平台获取流量
- js获取数组的最后一个元素
- 如何利用火狐获取网址中的提交链接
- jQuery中如何获取元素的索引值&js获取索引
- 原生js如何获取当前元素的同级元素