提取vector容器中的值

begin()       返回第一个元素的迭代器 (iterator)

end()          返回最末元素的迭代器 (iterator) (译注:实指向最末元素的下一个位置)

注:这两个就相当于指针,可以把他们返回的值赋给一个声明的 iterator (迭代器),这个迭代器可以 ++  – 的操作,还可以直接加一个数字

例1:

std::vector a(10);
 std::vector::iterator it;
 int i = 0;
 for (it = a.begin(); it != a.end(); it++)
 {
  *it = i;
  i++;
 }

cout<<*(a.begin()+4)<<endl; // 输出的为:4

cout<<*(a.end()-2)<<endl; // 输出的为:8

注:a 中的值从第0为到第10维分别是: 0,1,2,3,4,5,6,7,8,9;

rbegin()      返回Vector尾部的逆迭代器 (reverse_iterator)
rend()         返回Vector起始的逆迭代器 (reverse_iterator) (译注:实指向第一个元素的前一个位置) ,rend()-1指向的是第一个元素

注:这两个就相当于指针,可以把他们返回的值赋给一个声明的 reverse_iterator(逆迭代器),这个迭代器可以 ++  – 的操作,还可以直接加一个数字,但如果当前指向的是第7维,如果加2就指向的是第5维,如果++就是第6维,如果减2就是第9维

例2:

std::vector a(10);
 std::vector::reverse_iterator it;
 int i = 0;
 for (it = a.rbegin(); it != a.rend(); it++)
 {
  *it = i;
  i++;
 }

cout<<*(a.rend()-1)<<endl; // 输出的为:9

cout<<*(a.rbegin()+4)<<endl; // 输出的为:4

注:a 中的值从第0为到第10维分别是: 9,8,7,6,5,4,3,2,1,0;

front()        返回第一个元素 (相当于 *begin() )

at()            返回指定位置的元素 (参数添几相当于提取第几维的元素的值,而不是指针)
back()        返回最末一个元素 (相当于 *(end()-1) )

注:这三个函数取得的都是值而不是指针

例3:
 std::vector a(10);
 for (int i = 0; i<a.size(); i++)
 {
   a.at(i) = i; // 相当于a[i] = i;
 }
 cout<<a.front()<<endl; // 输出的为:0
 cout<<a.back()<<endl; // 输出的为:9

注:a 中的值从第0为到第10维分别是: 0,1,2,3,4,5,6,7,8,9;

作者:qingqinglanghua
来源:CSDN
原文:https://blog.csdn.net/qingqinglanghua/article/details/5025919
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值