C/C++技术基础
文章平均质量分 92
涉及C/C++的基础语法和一些常见的问题
狮子谢耳朵
这个作者很懒,什么都没留下…
展开
-
Clean Code 代码整洁之道笔记(1-8 章)
Clean Code Chapter 1-8第一章 整洁代码1. 为什么需要代码?2. 混乱的代码3. 什么是整洁代码第二章 有意义的命名1. 名副其实2. 避免误导3. 做有意义的区分4. 使用读得出来的名称5. 使用可搜索的名称6. 避免使用编码7. 避免思维映射8. 类名9. 方法名10. 每个概念对应一个词11. 别用双关语12. 使用解决方案领域名称13. 添加有意义的语境14. 不添加没用的语境第三章 函数1. 短小2. 只做一件事3. 每个函数一个抽象层级4. switch 语句(还要再查查资原创 2021-04-14 10:21:39 · 673 阅读 · 0 评论 -
「STL详解」RB-tree 红黑树
RB-tree 红黑树是一种广泛使用的平衡二叉搜索树(BInary Search Tree),也是 SGI STL 为以实现的一种搜索树,作为关联式容器(associated containers)的底部机制。它能确保任何一个节点的左右子树的高度差不会超过二者中较低子树的一倍。RB-tree 满足以下规则:每个节点不是红色就是黑色根节点是黑色如果节点是红色,其子节点必须为黑任意节点到 NULL(数尾端)的任何路径,所含黑节点数必须相同RB-tree 节点设计RBTree 有红黑两种颜色的节原创 2020-06-21 19:51:27 · 625 阅读 · 0 评论 -
Windows下使用VS2017搭建FLTK开发环境
转载自博客园:lulipro - 代码钢琴家转载 2020-05-29 20:59:26 · 308 阅读 · 0 评论 -
「STL详解」容器配接器详解
容器配接器(container adapter)并不是一类容器,它没有提供真正的数据结构实现,并且配接器不支持迭代器。配接器使用已有的容器作为底部结构,将其接口改变,使之符合自己的特性。STL 提供三种容器配接器:stack、queue、priority_queue。1. stackstack 是一种先进后出(First In Last Out, FILO)的数据结构,只有一个接口,允许新增数据、移除数据和取得最顶端数据,即不允许有遍历行为。堆栈都能够用任何顺序容器实现:vector、list、de原创 2020-05-26 21:15:13 · 267 阅读 · 0 评论 -
「C/C++技术基础」基本数据类型需要注意的问题
C++ 定义了包括算数类型和空类型在内的基本数据类型。其中算数类型包含了字符、整型数、布尔值和浮点数。空类型不对应具体的值。1. 算数类型算数类型分为两类:整形(integral rype,包括字符和布尔类型)和浮点型。 不同的数据类型在不同的操作系统下占用的内存空间也不同,64 位系统下除了指针类型和 long long 类型由 32 位下的 4 字节大小增长为 8 字节外,其余没有变化。char 类型死循环问题char 类型是基本的字符类型,占一个字节(8 位),取值范围位 -128 到原创 2020-05-25 21:47:32 · 260 阅读 · 0 评论 -
「C/C++技术基础」类的构造、析构与赋值运算
C++ Primer 中描述类的基本思想是数据抽象(data abstraction)和封装(encapsulation)。数据抽象是一种依赖于接口(interface)和实现(implementation)分离的编程技术。类的接口包括用户能执行的操作;类的实现包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。每个类都分别定义了它的对象被初始化的方式,类通过一个或几个特殊成员函数来控制对象的初始化过程,构造函数(constructor)用来初始化类对象的数据成员,只要类的对象被创建就会执原创 2020-05-21 16:58:23 · 175 阅读 · 0 评论 -
「STL详解」顺序容器 deque 详解
1. deque 概述vector 是单向开口的连续线性空间,deque 是一种双向开口的连续线性空间,即可以在头尾两端做元素的插入和删除操作。deque 和 vector 的区别:deque 可以在常数时间内对头端进行元素的插入和移除操作;deque 没有容量(capacity)的概念,它是动态地分段连续空间组合而成,随时可以增加一段新空间并连接起来。即 vector 是在旧空间不足时开辟新空间,然后将数据拷贝过来再释放原来的空间;而 deque 则不需要提供空间保留功能。deque 的迭代原创 2020-05-20 15:38:21 · 385 阅读 · 0 评论 -
「算法」位运算的一些技巧
位运算是把数字用二进制表示,对每一位上的 0 或 1 进行运算。位运算只有五种类型:与(&)、或(|)、异或(^)、左移(<<)和右移(>>)。左移运算和右移运算左移运算符 m<<n 表示把 m 左移 n 位,最左边的 n 位丢弃,同时在最右边补 n 个 0。右移运算符 m>>n 表示把 m 右移 n 位,最右边的 n 位丢弃,如果 m 是无符号数,则用 0 填补最左边的 n 位;如果 m 是有符号数,则用符号位填补最左边的 n 位。对于一个正原创 2020-05-12 22:47:24 · 371 阅读 · 0 评论 -
「STL 详解」顺序容器 list
list 可以简单的看做是一个双向链表,相比于 vector 的连续线性空间,list 每次插入和删除一个元素,就配置或释放一个元素空间。对任何一个位置的元素插入和移除,list 都是常数时间。list 和 forword_list 十分相似,list 是双向链表,数据由若干个节点构成,每一个节点都包括一个信息块(即实际存储的数据)、一个前驱指针和一个后驱指针;而 forward_list 是一个单向链表,只支持单向顺序访问,在链表的任何位置进行插入/删除操作都非常快。list 的节点list 本身和原创 2020-05-11 20:38:57 · 154 阅读 · 0 评论 -
「STL详解」顺序容器vector
顺序容器(sequential containers)中的元素是 ordered,但不一定是 sorted。即容器存储的元素在组织形式上是有序的,但在值的排列上不一定有序。C++ 中提供了一个顺序容器 array,STL额外提供了 vector, list, deque, stack, queue, priority-queue 等顺序容器。其中 stack 和 queue 是由 deque 转换而来,技术上称为配接器(adapter)。vector概述vector 和 array 非常相似,array原创 2020-05-09 13:27:31 · 227 阅读 · 0 评论 -
「STL详解」STL概述和迭代器
什么是STL标准模版库?在我们学习 STL 之前首先了解什么是标准模版库(STL)。STL(Standard Template Library),即标准模板库,是一个高效的C++程序库,包含了常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。从逻辑层次来看,在STL中体现了泛型化程序设计的思想(generic programming)。在这种思想里,大部分基本算法被抽象,被泛化,独立于与之对应的数据结构,用于以相同或相近的方式处理各种不同情形。从实现原创 2020-05-08 22:06:24 · 214 阅读 · 0 评论 -
「C/C++技术基础」const关键字的理解和使用
1. C/C++中的const全局 const 修饰的变量在 C++ 语言和 C 语言下情况相同,在 C++ 下无法修改局部 const 修饰的变量,但可以用来初始化数组,是真正意义上的常量。const注意事项:const 在 C 语言下默认是外部链接属性,在 C++ 下默认是内部链接属性C 语言下的全局变量默认增加了extern 关键字,C++ 中需要手动添加 extern 关键字来...原创 2020-05-03 00:04:01 · 175 阅读 · 0 评论