vector迭代器的begin()和end()

本文详细解析了C++中迭代器和反向迭代器的使用方式,特别是它们在空容器及非空容器中的行为表现。通过具体示例说明了end()指针的位置及其在迭代过程中的作用,并附带了一个包含常见错误的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考博客:http://blog.youkuaiyun.com/kjing/article/details/6936325

迭代器和反向迭代器使用时:

end()永远指向最后一个元素的下一个位置;

若容器为空时,迭代器的begin()和end()指向位置相同,而后即使再给容器赋值,迭代器的begin()指向,仍然为空。

错误范例:


#include <iostream>
#include <vector>
void prin(int &i);
int main()
{
 int s=6;
 std::vector<int> ivec;
 std::vector<int>::iterator ite;
 ite=ivec.begin();
 std::vector<int>::reverse_iterator re_ite;
 
 for (std::vector<int>::size_type i=0;i!=10;i++)
 {
  ivec.push_back(i);
 }
 
 ivec[0]=100;
 re_ite=ivec.rend();
 ivec.push_back(100);
 for_each(ivec.begin(),ivec.end(),prin);

 std::cout<<*ite<<"\n";
 /*ite=ite+5;
 re_ite=re_ite-6;

 std::cout<<*ite<<"\n";
 std::cout<<*re_ite<<"\n";*/

}
void prin(int &i)
{std::cout<<i<<std::endl;}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值