当前位置: 首页 > news >正文

侯捷 C++ 课程学习笔记:STL标准库与泛型编程

STL 体系结构基础介绍

STL 六大部件:                                                                                                                               

容器(Containers)

分配器(Allocators)

算法(Algorithms)

迭代器(Iterators)

适配器(Adapters)

仿函式(Functors)

STL 六大部件关系:(仿函数+适配器)仿函数适配器→算法→容器                                         

                                 (迭代器+适配器)迭代器适配器→容器                                       

                                 (容器+适配器)容器适配器→容器

复杂度,Complexity,Big-oh

目前常见的Big-oh 有下列几种情形:

O(1)或O(c):称为常数时间(constant time)

O(n):称为线性时间(linear time)

O(log₂n):称为次线性时间(sub-linear time)

O(n²):称为平方时间(quadratic time)

O(n³):称为立方时间(cubic time)

O(2ⁿ):称为指数时间(exponential time)

O(nlog₂n):介于线性及二次方成长的中间之行为模式

“前闭后开”区间:[]()  容器(不一定连续空间)

range-based for statement(since C++11):for ( decl : coll )for:decl:声明  coll:容器

auto keyword (since C++11)

容器之分类与各种测试(一)

容器-结构与分类

Sequence Containers,Associative Containers,Unordered Containers、HashTable Separatc Chaining。

Array、Forward-list和Unordered Containers是C++ 11 新增加的。

Sequence Containers:Array、Vector、Deque、List、Forward-List。

Associative Containers:Set/Multiset、Map/Multimap。

Unordered Containers:Unordered Set/Multiset、Unordered Map/Multimap。

认识header、版本、重要资源

C++标准库——体系结构与内核分析(C++ Standard Library—architecure & sources)

C++STL 标准库与泛型编程(C++ Seandard Template Library and Generic Programming)

Generic Programming (GP,泛型编程),就是使用template(模板)为主要工具来编写程序。课程中开宗明义阐述了GP 与OOP(Object Oriented Programming,面向对象编程)根本差异,和谈到templates 的意义和运用。

需要具有C++ 基本语法(包括如何正确使用模板,templates)基础

C++ Standard Library vs. Standard Template Library                                                                     

C++ Standard Library、C++ 标准库

Standard Template Library,STL,标准库

标准库以header files 形式呈现

C++ 标准库的header files 不带副档名(.h),比如:#include <vector>

新式C header files 不带副档名.h,比如:#include <cstdio>

旧式C header files (带有副档名.h)仍可用,比如:#include <stdio.h>

新式header 内的组件封装于namespace"std"

旧式headers 内的组件不封装于namespace "std"

重要网页

cplusplus cplusplus.com

C++参考 cppreference.com

注:有不当之处,请批评指正!谢谢~

相关文章:

  • Vue主流的状态保存框架对比
  • 下载以后各个软件或者服务器的启动与关闭
  • C#常用的循环语句
  • 刷leetcode hot100--动态规划3.9
  • prompt大师高效提示词解析
  • 《算法笔记》8.1小节——搜索专题->深度优先搜索(DFS)问题 A: 【递归入门】全排列
  • [pytest] 配置
  • 中国信通院安全所青藤云安全联合牵头:容器安全评价新标准正式发布
  • Oxidized收集H3C交换机网络配置报错,not matching configured prompt (?-mix:^(<CD>)$)
  • prompt样例库推荐
  • 《领导力21法则》第一章「盖子法则」笔记
  • 自动运维部署工具实现
  • Python Flask 在网页应用程序中处理错误和异常
  • MySQL配置文件my.cnf和mysql.cnf、mysqld.cnf的区别
  • 【算法】二叉树的递归遍历
  • 【Axure资料】110套优质可视化大屏模板+图表组件+科技感元件等
  • Filebeat收集nginx日志到elasticsearch,最终在kibana做展示。
  • 绪论数据结构基本概念(刷题笔记)
  • Docker数据管理,端口映射与容器互联
  • 华为hcia——Datacom实验指南——三层交换和ARP的工作原理
  • 解读|俄方称愿与乌方共同起草和平备忘录,特朗普多轮通话外交有效吗?
  • 澎湃读报丨多家央媒刊文关注拧紧纪律的螺丝:强化监督推动过紧日子要求落到实处
  • 俄乌刚谈完美国便筹划与俄乌领导人通话,目的几何?
  • 推开“房间”的门:一部“生命存在的舞台” 史
  • 专利申请全球领先!去年我国卫星导航与位置服务产值超5700亿
  • 女生“生理期请病假要脱裤子证明”?高校回应:视频经处理后有失真等问题