08 2022 档案

摘要:组合模式 在文件系统中,文件夹和文件具有一致性 将文件夹和文件当作同一种东西看 示例 模拟一个文件系统。文件和文件夹都具有名称和大小,我们将其抽象成Entry。 但是文件夹可以add文件或者文件夹,文件却不能add class FileTreatmentException extends Runti 阅读全文
posted @ 2022-08-20 17:05 Destiny233 阅读(20) 评论(0) 推荐(0) 编辑
摘要:set集合 底层就是一个hash表,只不过保存的值是null。 添加删除 sadd key element element ... 用element等创建一个set smembers key 显示key中成员 sismembers key element 判断element是否在key中 scard 阅读全文
posted @ 2022-08-18 23:32 Destiny233 阅读(48) 评论(0) 推荐(0) 编辑
摘要:桥接模式 将类功能的层次结构和实现结构分离开 实现层次结构:在模板方法模式中,我们通过重写父类的方法来达到实现自己的功能的目的。这里使用的继承只是子类为了在父类的接口下实现自己的方法。 功能层次结构:继承一个类,写一个新的方法。这里使用继承是为了给父类添加新的方法,但是又能继续用父类的方法。 桥接模 阅读全文
posted @ 2022-08-17 20:34 Destiny233 阅读(21) 评论(0) 推荐(0) 编辑
摘要:单例模式 这个太简单了,贴一下代码吧 public class Singleton { private static Singleton singleton = new Singleton(); public static Singleton getInstance() { return singl 阅读全文
posted @ 2022-08-16 19:58 Destiny233 阅读(17) 评论(0) 推荐(0) 编辑
摘要:模板方法模式 父类写一些抽象方法,子类来实现他们 示例 这里我们希望实现一个打印的功能。预计是设计两个类,一个用来打印字符,另一个用来打印字符串。 抽象了一个基类设计打印的一些细节,把整个打印流程总结成了3个部分,open, print和close open() 负责打印一些初始东西 print() 阅读全文
posted @ 2022-08-14 20:37 Destiny233 阅读(17) 评论(0) 推荐(0) 编辑
摘要:MySQL基本介绍 MySQL登录 mysql -uroot -p123456 显示输入密码 mysql -uroot -p 不显示密码 MySQL常用命令 show databases; 显示所有的数据库 create database xxxx; 创建xxxx数据库 use xxx 使用xxx数 阅读全文
posted @ 2022-08-14 11:09 Destiny233 阅读(25) 评论(0) 推荐(0) 编辑
摘要:迭代器模式 Iterator 迭代器接口 public interface Iterator{ boolean hasNext(); // 是否有下一个元素 Object next(); // 返回下一个元素 } Aggregate 集合接口 // 集合接口 public interface Agg 阅读全文
posted @ 2022-08-13 15:22 Destiny233 阅读(18) 评论(0) 推荐(0) 编辑
摘要:这一期主要讲一些工具和库,感觉不是很重要,随便看看就行 编译器 MSVC Clang GCC 格式化工具:clang-format 代码检查工具:clang-tidy 排错工具:Valgrind、nvwa::debug_new,这俩可以检测内存泄露 处理数据类型变化和错误 optional opti 阅读全文
posted @ 2022-08-12 15:34 Destiny233 阅读(65) 评论(0) 推荐(0) 编辑
摘要:这里只总结具体用法,至于redis的输出需要自己在redis-cli中试一下。 Redis中的数据结构 有以下5个基础数据结构 string 字符串 list 链表 hash 哈希表 set 集合 zset 有序集合 还有几个新的数据结构,感觉不是很常用? hyperloglog 位图 地理位置? 阅读全文
posted @ 2022-08-11 23:49 Destiny233 阅读(21) 评论(0) 推荐(0) 编辑
摘要:函数对象 c++98中的函数对象:重载()运算符 struct Add { Add(int n): n_(n){} int operator()(x) const { return x + n_; } private: int n_; } Lambda表达式 auto add_2 = [](int 阅读全文
posted @ 2022-08-10 19:54 Destiny233 阅读(39) 评论(0) 推荐(0) 编辑
摘要:Unicode ASCII:美国信息交换标准代码 Windows扩展以及各种乱七八糟的扩展:ISO-xxx等 Unicode 0x0~0x10FFFF一共 UTF-32:编码直接映射 UTF-16: UTF-8:1~4个字节变长 C++对Unicode的支持 c++11引入了char16_t cha 阅读全文
posted @ 2022-08-09 19:38 Destiny233 阅读(84) 评论(0) 推荐(0) 编辑
摘要:第一讲,一条SQL查询语句是如何执行的 select * from T where ID=10 MySQL可以分成Server层和存储引擎两个部分 Server层 引擎层:InnoDB,MyISAM,Memory 连接器:负责与客户端建立连接 查询缓存:如果某个语句查过了,就直接返回(不建议使用) 阅读全文
posted @ 2022-08-08 22:00 Destiny233 阅读(55) 评论(0) 推荐(0) 编辑
摘要:异常 异常安全:当发生异常时,没有资源泄露,系统也不会处于不一致状态 如果不知道是否使用异常,那就是该用。 直接throw会导致内存泄漏,才会使用try catch 在大部分情况下,提供了强异常保证 迭代器 迭代器不是一种类型,而是一种类型要求。 迭代器要求支持*,++,==,!=运算符 输入迭代器 阅读全文
posted @ 2022-08-07 15:08 Destiny233 阅读(62) 评论(0) 推荐(0) 编辑
摘要:堆、栈和RAII 这一讲主要说的是内存管理。C++中主要的内存管理有 栈上内存交给编译器管理 堆上内存需要用户自己管理 栈上内存分配很简单,移动几个指针就行了。 RAII 以下几种情况,就不能使用栈上的空间的了,必须用户自己管理内存。 对象很大 对象在编译时候不确定 对象的生命周期超过了函数 RAI 阅读全文
posted @ 2022-08-06 16:25 Destiny233 阅读(166) 评论(0) 推荐(0) 编辑
摘要:函数对象 函数对象就是重载了()运算符的对象,这个对象可以像函数指针一样被调用。 函数对象主要用作算法的参数。很多算法提供了一个函数对象的参数,让用户自定义某些操作。 但实际上c++11出的functional中的函数对象更多是作为回调使用。 书里有些东西过时了,在C++20中很多都干掉了,这里就不 阅读全文
posted @ 2022-08-05 12:04 Destiny233 阅读(36) 评论(0) 推荐(0) 编辑
摘要:set算法 set有4个算法,交集,并集,补集和对称差集。这四个不能用于unordered_set系列的,只能接受set和multiset。 这四个方法都有两个版本,其中第二个版本可以自定义"<"比较符。我们只讨论第一个版本。 set_union 两个集合求并集。参数是两个区间和一个保存结果的beg 阅读全文
posted @ 2022-08-04 12:04 Destiny233 阅读(24) 评论(0) 推荐(0) 编辑
摘要:STL中的算法写在这两个头文件中 algorithm numeric 这里只列老版本的C++03的算法,新版本的算法可以在cppreference上看看(太多了),上面的内容比书上更清晰,且全面。 所有的算法都是操作在迭代器控制的一个范围之内的。 算法可以分成质变与非质变两种。前者会修改区间中的元素 阅读全文
posted @ 2022-08-03 16:01 Destiny233 阅读(34) 评论(0) 推荐(0) 编辑
摘要:在STL中,关联容器核心的只有两个:set和map,与之相关的还有multi和unordered。组合起来一共就是8个 底层实现 STL中,关联容器的实现有两个数据结构,红黑树和hash表。 红黑树 红黑树是一种平衡二叉树,他有这些特点 树上所有的节点都带有颜色,要么红色要么黑色。 根节点是黑色 根 阅读全文
posted @ 2022-08-02 15:21 Destiny233 阅读(34) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示