码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 10.1- 10.3读书笔记


    10.1 概述

    头文件 algorithm 中定义了一个名为 count 的函数,它类似 find, 接受一对迭代器和一个值作为参数。 count 返回给定值在序列中出现的次数。编写程序,读取 int 序列存入vector中,打印有多少个元素的值等于给定值。

    	std::vector<int> v = { 1, 2, 3, 4, 5, 6, 6, 6, 2 };
    	std::cout << std::count(v.cbegin(), v.cend(), 6) << std::endl;
    
    • 1
    • 2
    10.2 初识泛型算法

    假定 v 是一个vector,那么调用 accumulate(v.cbegin(),v.cend(),0) 有何错误(如果存在的话)?

    结果会是 int 类型。

    下面程序是否有错误?如果有,请改正:
    (a) vector vec; list lst; int i;
    while (cin >> i)
    lst.push_back(i);
    copy(lst.cbegin(), lst.cend(), vec.begin());
    (b) vector vec;
    vec.reserve(10);
    fill_n(vec.begin(), 10, 0);

    (a) 应该加一条语句 vec.resize(lst.size()) 。copy 时必须保证目标目的序列至少要包含与输入序列一样多的元素。
    (b) 从语句上来说没错误,这段代码没有任何结果。但是从逻辑上来说,应该将 vec.reserve(10) 改为 vec.resize(10) 。

    本节提到过,标准库算法不会改变它们所操作的容器的大小。为什么使用 back_inserter 不会使这一断言失效?

    back_inserter 是插入迭代器,在 iterator.h 头文件中,不是标准库的算法。

    你认为算法不改变容器大小的原因是什么?

    算法的接口是迭代器,而迭代器用来改变容器。这样的设计使得算法具有通用性。

    定制操作

    编写一个 lambda ,捕获它所在函数的 int,并接受一个 int参数。lambda 应该返回捕获的 int 和 int 参数的和。

    int x = 10;
    auto f = [x](int i) { i + x; };

    编写一个 lambda,捕获一个局部 int
    变量,并递减变量值,直至它变为0。一旦变量变为0,再调用lambda应该不再递减变量。lambda应该返回一个bool值,指出捕获的变量是否为0。

    int i = 10;
    auto f = [&i]() -> bool { return (i == 0 ? true : !(i--)); };
    while (!f()) cout << i << endl;
    
    • 1
    • 2
    • 3

    bind 接受几个参数?

    假设被绑定的函数接受 n 个参数,那么bind 接受 n + 1 个参数。

  • 相关阅读:
    龙蜥白皮书精选:龙蜥安全漏洞管理体系介绍
    K_A08_002 基于 STM32等单片机驱动MAX1508模块按键控制直流电机正反转加减速启停
    Flink对比Spark
    thinkphp6 入门(4)--数据库操作 增删改查
    flink重温笔记(十六): flinkSQL 顶层 API ——实时数据流结合外部系统
    鲲鹏开发者峰会2022丨冲量携手鲲鹏,共赢数字新时代
    通关GO语言20 协作开发:模块化管理为什么能够提升研发效能?
    五种I/O模型
    【mysql】mysql数据库出现Communications link failure
    整合:qlib的AI导向的框架与backtrader的事件驱动与实盘
  • 原文地址:https://blog.csdn.net/L_H_L/article/details/127839465
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号