一些C++ STL泛型算法整理

泛型算法本身不会执行容器的的操作,他们只会运行于迭代器上,执行迭代器的操作。所以算法永远不会改变底层容器的大小,但可能改变容器中元素的值,也可能在容器中移动元素,但永远不会直接添加和删除元素。但标准库定义了一类特殊的迭代器,称为插入迭代器,这种迭代器赋值是,他们会在底层容器上执行插入操作。因此算法可以利用插入迭代器完成向容器中添加元素的操作,但算法本身永远不会做这样的操作。
大多数算法都定义在头文件algorithm中,numeric中也定义了一组数值泛型算法
1. 只读算法
只读取元素值,不改变元素,对于这类算法,通常最好使用cbegin()和cend()
find: auto result = find(vec.cbegin(), vec.cend(), val);   //在容器中查找指定的元素值,结果返回指向查找到的元素的迭代器,如果未找到,返回vec.end()  (起始迭代器,终止迭代器,查找的元素值)
count: int num = count(vec.cbegin(), vec.cend(), val);  /
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值