迭代器和下标之间转换

转换主要是使用stl中的advance和distance函数来进行的,
advance是将iterator移动指定个元素,distance是计算两个iterator直接的距离。

distance计算第一个参数到第二个参数之间的距离。如果第二个参数的顺序在第一个参数前面的话,函数是会返回负值的;如果迭代器不在一个容器内,程序会抛出异常。

advance是将第一个参数向后移动第二个参数指定个元素。如果第二个参数为负,则向前移动;如果向前或向后移动超出容器范围,则抛出异常。

#include
#include
#include
using namespace std;
int main ()

 list mylist; 
 for (int i=0; i<10; i++)
  mylist.push_back (i*10.0); 

 list::iterator first = mylist.begin(); 
 list::iterator last = mylist.end(); 
 advance(first, 1);
 cout << "The distance is: " << distance(first,last) << endl; 
 return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值