
C++ STL list and slit
简介 单链表 双向链表 总结 简介 STL 中提供了单向链表和双向链表。(好像单向链表并没有进入 C++ 标准) slist list 支持常见的操作 push/pop_back: 双向链表 push/pop_front front back: 双向链表 remove reverse unique merge: 归并两...

简介 单链表 双向链表 总结 简介 STL 中提供了单向链表和双向链表。(好像单向链表并没有进入 C++ 标准) slist list 支持常见的操作 push/pop_back: 双向链表 push/pop_front front back: 双向链表 remove reverse unique merge: 归并两...

简介 实现细节 增加元素的操作 删除元素的操作 其它操作 简介 C++ STL Vector 是经典的连续存储空间的数据。它有两个模板参数: 存储类型: 所存储数据的类型 _Alloc: 表示其所使用的空间分配器,一般情况下不需要增加这个参数,除非有自定的需求 vector 的实现比较简单,其实也不简单。它考...

简介 默认内存分配器 支持 freelist 对外接口和 type traits 简介 本文主要介绍 STL 中基础的内存分配的相关知识。C/CPP 初学者对于内存分配基本就是(malloc/free, new/delete)。 这些可以解决绝大部分场景下的内存分配,但是对于频繁的内存申请和释放,小内存变量的申请,容易造成内存 的碎片,而且内存的申请和释放过于频繁也会影...

简介 pair type_traits stl_construct stl_uninitialized 简介 本文主要涵盖很多基础的点。 pair type_traits pair 定义一个 struct,有两个成员变量: first second 两个类型变量: first_type second_type 定...

简介 基本打印日志 高级用法 区分系统日志和用户的日志 多个目标输出 对日志进行过滤 对日志进行 format 简介 日志对于任何一个工程来说都是非常重要的,它分为多个级别。一般分为如下级别: DEBUG INFO WARN ERROR 当然不同的日志模块划分可能不一定一致,但...

问题 解决方法 Backspace 失效 之前有一次误操作,将 ~ 文件夹进行了删除。幸亏及时遇到了权限问题,没有清理完,不然要悲剧。现在已经 将 rm 重定向成 mv 操作。 alias rm="mv $@ ~/.trash" 问题 虽说这次删除并没有删除干净,但是也破坏了我一些工具,其中比较重要的是 vim。之前在 Github 上备份 过插件,直接 clone 下...

综述 简单暴力的方法 优雅的方法 rebase 功能 综述 今天同事遇到一个问题:仓库中限制在提交时必须使用公司内部的邮箱。但是由于之前没有配置: git config –global user.name git config –global user.email 导致之前的信息有误。其分支图如下: A->B-C->HEAD 其中 B ...

简介 两种 Retrier Retry with hook Retry with sleep and count 简介 最近工作中有个需求是当某个命令失败时,重新执行它。当然重新执行它有多重原因,例如: 执行另外一个 hook 的函数 由于网络等原因,希望等待的一定的间隔重试几次 本文介绍如何利用 Python ...

翻译自:A guide to Python’s Magic Methods 引言 构造和初始化 自定义类中工作的算子 引言 这篇指导是几个月博客的累积成果,主题是:魔法方法(magic methods)。 什么是魔法方法?他们是 Python 面向对象编程的全部,是你为给类增加魔力而添加的特殊方法。魔法方法前后总 是包围着两个下划线(例如,__init__, __...

注释 模块注释 类的注释 函数注释 生成文档 初始化 生成 API 文档 生成 HTML 文件 展示网页 当编写比较大的库时,如果代码具有良好的注释规范,可以使用 sphinx 来生成文档。本文主要介绍生成文档 的步骤,以及编写代码中注释的添加方式。...