必备基础数据结构 _ leetcode 刷题顺序
摘要:1. 算法性能分析 主要 分 时间复杂度 和空间复杂度 两大部分; 自己查询; 2. 数组 二分查找 lc 704; 移除元素 lc27; 有序数组的平方 lc977; 长度最小的子数组 lc 209; 螺旋矩阵II lc59; 3. 链表 移除链表元素 lc203; 设计链表 lc707; 反转链
阅读全文
6-5 C++ STL begin()和end()函数用法
摘要:在前面章节中,我们已经对 C++ STL标准库提供的所有容器做了系统的讲解。读者可能已经注意到,无论是序列式容器还是关联式容器(包括哈希容器),不仅模板类内部提供有 begin() 和 end() 成员方法,C++ STL 标准库中还提供有同名且具有相同功能的 begin() 和 end() 函数。
阅读全文
4-1 C++ 中的关联式容器
摘要:在《C++ STL容器》一节中讲到,C++ 容器大致分为 2 类,即序列式容器和关联式容器。其中,序列式容器(包括 array、vector、list、deque 和 forward_list)已经在前面章节中做了详细的介绍,从本节开始,将逐个对 C++ STL 标准库中的所有关联式容器做详细的讲解
阅读全文
4-2 关联式容器中的pair 类模板
摘要:1. 关联式容器中的键值对 关联式容器存储的是“键值对”形式的数据,比如: <"C语言教程", "http://c.biancheng.net/c/"> <"Python教程", "http://c.biancheng.net/python/"> <"Java教程", "http://c.bianc
阅读全文
3-1 C++中序列式容器
摘要:1. 常见的五种序列容器 所谓序列容器,即以线性排列(类似普通数组的存储方式)来存储某一指定类型(例如 int、double 等)的数据,需要特殊说明的是,该类容器并不会自动对存储的元素按照值的大小进行排序。 需要注意的是,序列容器只是一类容器的统称,并不指具体的某个容器,序列容器大致包含以下几类容
阅读全文
2-3 C++ 容器的迭代器
摘要:1. 迭代器的产生 无论是序列容器还是关联容器,最常做的操作无疑是遍历容器中存储的元素,而实现此操作,多数情况会选用“迭代器(iterator)”来实现。那么,迭代器到底是什么呢? 我们知道,尽管不同容器的内部结构各异,但它们本质上都是用来存储大量数据的,换句话说,都是一串能存储多个数据的存储单元。
阅读全文
2-2 C++中的容器分类
摘要:在实际的开发过程中,合理组织数据的存取与选择处理数据的算法同等重要,存取数据的方式往往会直接影响到对它们进行增删改查操作的复杂程度和时间消耗。事实上,当程序中存在对时耗要求很高的部分时,数据结构的选择就显得尤为重要,有时甚至直接影响程序执行的成败。 值得一提的是,之前我们一直在不断地重复实现一些诸如
阅读全文
2-1 C++ 中的STL 简介
摘要:本文源自于 C 语言中文网: 前面介绍了 函数模板 和 类模板 两个概念, C++ 对模板(Template)支持得很好,整个STL(Standard Template Library) 提供了通用的模板类和模板函数; 这些模板类和模板函数就是使用模板把常用的数据结构(如向量、链表、队列、栈)及其算
阅读全文
1-2 c++ 中的类模板
摘要:C++ 除了支持函数模板,还支持类模板(Class Template)。 函数模板中定义的类型参数可以用在函数声明和函数定义中, 类模板中定义的类型参数可以用在类声明和类实现中。类模板的目的同样是将数据的类型参数化。 1.1 类模板的定义 声明类模板的语法为: template<typename 类
阅读全文
1-1 c++ 中的函数模板
摘要:泛型程序设计: 是指一种算法在实现时, 不需要指定具体操作的数据类型; “泛型”: 指的便是算法(内部逻辑,操作的顺序步骤)只要实现一遍, 就能适用于多种数据类型,从而可以减少重复代码的编写; 从而generic Programming 泛型编程设计: 便是指编写大量的模板, 以及使用这些模板的程序
阅读全文
C++ 中的 指针与引用
摘要:推荐阅读 1.《C语言的设计与演化》 2. <<more effective C>> 3. 程序员的自我修养- 链接 装载与库 1. 引言 1.1 对象: C++primer中, 对象的定义: 对象是指一块能存储数据并具有某种类型的内存空间; 一个对象a,它有值和地址&a, 运行程序时,计算机会为该
阅读全文