C++标准库函数begin和end函数

主要的目的

  • 为了让指针更加简单、安全,引入了begin和end函数,这两个函数和容器中两个同名的成员函数类似。但是由于数组毕竟不是类类型,因此这两个函数不是成员函数。
  • 正确的使用形式就是将数组作为他们的参数
    int ia[] = {0,1,2,3,4,5,6,7,8,9};
    int *beg = begin(ia);
    int *last = end(ia);
  • begin函数返回指向数组的首元素的指针,end函数返回指向数组尾元素的下一个位置的指针,这两个函数都被定义在iterator的头文件中。使用begin和end函数就可以很好地处理数组中的元素
  • 例子:从数组中找到第一个负数
int main(){
    int ia[] = {0,1,2,3,-4,5,6,7,8,9,-6};
    int *beg = begin(ia);
    int *last = end(ia);
    //寻找第一个负值的元素,如果已经检查完毕全部元素就结束循环
    while (beg != last){
        if(*beg >= 0){
            *beg++;
        }else{
            cout << *beg;
            break;
        }
    }
    return 0;
}
  • 一个指针如果指向了某种内置类型数组的尾元素的“下一个位置”,则其具备与vector的end函数返回的与迭代器类似的功能。特别要主要的是,尾后指针不能执行解引用和递增操作。
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值