暂时未有相关云产品技术能力~
暂无个人介绍
目录 可变参数模板 1.1 概念 1.2 可变参数模板定义 1.3 参数包的展开方式 1.3.1 递归展开参数包 1.3.2 逗号表达式展开参数包 1.4 STL的emplace系列函数
目录 lambda表达式 1.1 lambda表达式出现的原因 1.2 lambda表达式语法 1.3 函数对象与lambda表达式
#「持之以恒」挑战赛-30天技术创作养成记!# 目录 一、final与override关键字 1.1 final 1.2 override 二、类的新功能 2.1 默认成员函数 2.2 类成员变量初始化 2.3 default关键字 2.4 delete关键字
目录 右值引用和移动语义 1.1 左值引用和右值引用 1.1.1 左值和左值引用 1.1.2 右值和右值引用 1.2 左值引用与右值引用比较 1.3 左值引用使用场景和意义 1.4 右值引用的使用场景和意义 1.5 右值引用引用左值及其一些更深入的使用场景分析 1.6 完美转发 1.6.1 万能引用 1.6.2 完美转发
目录 一、关于C++11的简介 二、统一的列表初始化 2.1 {}初始化 2.2 std::initializer_list 三、声明 3.1 auto 3.2 decltype 3.3 nullptr 四、范围for循环 五、C++11中STL的一些变化
目录 三、阻塞信号 3.1 信号其他相关常见概念 3.2 信号在内核中的表示 3.3 sigset_t 3.4 信号集操作函数 3.5 sigprocmask函数 3.6 sigpending函数 3.7 信号集实验 四、深入理解捕捉信号 4.1 进程地址空间二次理解(内核空间与用户空间) 4.2 用户态和内核态 4.3 内核中信号的捕捉流程 4.4 sigaction函数 五、可重入函数 六、C语言关键字volatile 七、SIGCHLD信号
目录 一、认识信号 1.1 生活中的信号 1.2 将1.1的概念迁移到进程 1.3 信号概念 1.4 查看系统定义信号列表 1.5 man 7 signal 1.6 解释1.2的代码样例 1.7 信号处理常见方式概览 二、产生信号 2.1 signal函数 2.2 通过终端按键产生信号 2.3 调用系统函数向进程发信号 2.3.1 kill函数 2.3.2 raise函数 2.3.3 abort函数 2.4 硬件异常产生信号 2.4.1 除0操作产生的异常 2.4.2 空指针异常 2.5 由软件条件产生信号
目录 一、进程间通信介绍 1.1 进程间通信概念 1.2 为什么要有进程间通信 1.3 进程间通信目的 1.4 进程间通信分类 1.5 进程间通信的本质 二、管道 2.1 什么是管道 2.2 匿名管道 2.2.1 pipe函数 2.2.2 匿名管道的原理 2.2.3 匿名管道的使用 2.2.4 以文件描述符的角度看待 2.2.5 匿名管道测试代码 2.2.6 匿名管道读写规则 2.2.7 匿名管道的特征 2.2.8 基于匿名管道的进程池 2.3 命名管道 2.3.1 使用命令创建命名管道 2.3.2 命名管道的原理 2.3.3 在程序中创建命名管道
目录 一、布隆过滤器提出 二、布隆过滤器概念 三、布隆过滤器实现 3.1 布隆过滤器的插入 3.2 布隆过滤器的查找 3.3 布隆过滤器的删除 3.4 完整代码 四、布隆过滤器优点 五、布隆过滤器缺陷
目录 一、位图的引入 二、位图的应用 三、位图的使用(bitset的使用) 3.1 介绍 3.2 使用 四、bitset(位图模拟实现)
目录 一、哈希概念 二、哈希冲突 三、哈希函数 四、哈希冲突解决 4.1 闭散列(开放定址法) 4.1.1 线性探测 4.1.2 二次探测 4.1.3 研究表明 五、哈希表的闭散列实现 5.1 闭散列哈希表的结构 5.2 闭散列的插入 5.2 闭散列的查找 5.3 闭散列的查找 5.4 哈希表取模问题 5.5 string类型无法取模问题 5.6 完整代码 四、哈希冲突解决 4.2 开散列(链地址法、哈希桶) 六、哈希表的开散列实现(哈希桶) 6.1 哈希桶的结构 6.2 哈希桶的插入 6.3 哈希桶的查找 6.4 哈希桶的删除 6.5 完整代码
目录 一、unordered系列关联式容器 二、unordered_set的介绍及使用 2.1 介绍 2.2 使用 三、unordered_map的介绍及使用 3.1 介绍 3.2 使用
目录 前言 一、AVL树的概念 二、AVL树节点的定义 三、AVL树的插入 四、AVL树的旋转 4.1 左单旋 4.2 右单旋 4.3 左右双旋 4.4 右左双旋 五、AVL树的验证 六、AVL树的性能 七、完整代码
目录 一、选择题 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 二、编程题 1、排序子序列 2、倒置字符串
目录 一、非类型模板参数 二、模板的特化 2.1 模板特化概念 2.2 函数模板特化 2.3 类模板特化 2.3.1 全特化 2.3.2 偏特化 三、模板分离编译 四、模板总结(优缺点)
目录 一、反向迭代器 二、反向迭代器的实现
目录 一、priority_queue介绍 二、priority_queue使用 三、仿函数 四、priority_queue模拟实现 4.1 版本1 4.2 版本2
目录 一、stack介绍和使用 1.1 stack的介绍 1.2 stack的使用 二、queue的介绍和使用 2.1 queue的介绍 2.2 queue的使用 三、容器适配器 四、deque简单了解 五、stack模拟实现 六、queue模拟实现
目录 一、vs和g++下string结构说明 1.1 vs下string的结构 1.2 g++下string的结构 二、vector和list对比 2.1 vector优缺点 2.2 list优缺点 三、迭代器失效问题 四、list模拟实现 -> 操作符重载问题
目录 一、list的介绍 二、list的使用 2.1 Construct 2.2 operator= 2.3 Iterators 2.4 Capacity 2.5 Element access 2.6 Modifiers 2.7 Operations
目录 一、vector的介绍 二、vector的使用 2.1 Construct 2.2 operator= 2.3 Iterators 2.4 Capacity 2.5 Element access 2.6 Modifiers
目录 八、文件系统 8.1 磁盘 8.1.1 磁盘的物理结构 8.1.2 磁盘的存储结构 8.1.3 磁盘的逻辑结构 8.2 inode 九、软硬链接 9.1 软链接 9.2 硬链接 9.3 当前路径(.)和上级路径(..) 十、文件的三个时间
目录 一、重谈文件 二、C语言文件操作 2.1 重谈C语言文件操作 2.2 补充细节 三、操作系统文件操作(系统文件I/O) 3.1 文件相关系统调用:close 3.2 文件相关系统调用:open 3.2.1 open 的第二个参数 flags 3.2.2 open 的第三个参数 mode 3.2.3 open 的返回值 3.3 文件相关系统调用:write 3.4 文件相关系统调用:read 四、文件描述符 4.1 如何理解文件 4.2 什么是文件描述符 4.3 文件描述符的分配规则
目录 一、进程创建 1.1 再谈 fork 函数 1.2 fork 函数返回值问题 1.2 写时拷贝 1.3 fork 常规用法 1.4 fork调用失败的原因 二、进程终止 2.1 进程退出码 2.2 进程退出场景 2.3 进程如何退出 三、进程等待 3.1 进程等待必要性 3.2 进程等待的方法 3.2.1 通过 wait 方法回收子进程 3.2.2 通过 waitpid 获取子进程退出信息 3.3 获取子进程 status 3.4 再谈进程退出 3.5 进程的阻塞和非阻塞等待 四、进程程序替换 4.1 创建子进程的目的 4.2 替换函数 4.3
目录 一、指针为何物 1.1 指针的概念 1.2 指针的背后 二、指针和指针类型 2.1 指针的类型 2.2 指针类型的意义 2.2.1 指针 +- 整数(加减) 2.2.2 指针的解引用 三、野指针 3.1 野指针成因 3.2 如何规避野指针 四、指针运算 4.1 指针+-整数 4.2 指针-指针 五、指针和数组 六、二级指针 七、指针数组
目录 一、表达式求值 1.1 隐式类型转换 1.1.1 什么是整型提升(整型提升) 1.1.2 整型提升的意义 1.1.3 有符号(signed)与无符号(unsigned)的区别 1.1.4 有符号(signed)类型的整型提升 1.1.5 无符号(unsigned)整形提升 1.1.6 整型提升例子 1.2 算术转换 1.3 操作符的属性 二、位操作符的一些例题 三、数据类型大小
目录 前言 一、操作符分类 二、算术操作符 三、移位操作符 3.1 移位操作符简介 3.2 原码、反码、补码 3.3 << 左移运算符 3.4 >>右移运算符 3.5 警告 四、位操作符 4.1 & 按位与 4.2 | 按位或 4.3 ^ 按位异或 五、赋值操作符 六、单目操作符 6.1 单目操作符介绍 6.2 ! 逻辑反操作符 6.3 - +(负值、正值) 6.4 ~ 取反 6.5 -- 运算符和 ++ 运算符 6.6 & 取地址和 * 解引用 6.7 sizeof 操作符 6.8 (类型) 强制类型转换 七、关系操作符 八、 逻辑操
目录 一、线性表 二、顺序表 2.1 顺序表概念及结构 2.2 顺序表接口实现 2.2.1 顺序表初始化 2.2.2 顺序表的销毁 2.2.3 顺序表的打印 2.2.4 顺序表增加数据(插入,头插、尾插) 2.2.5 顺序表删除数据(删除,头删、尾删) 2.2.6 顺序表查找数据 2.2.7 顺序表修改数据 三、顺序表完整代码(C语言) 3.1 SeqList.h 3.2 SeqList.c 3.3 Test.c 四、顺序表的优缺点
一、什么是STL STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架
目录 一、C/C++内存分布 二、C语言中动态内存管理方式 三、C++内存管理方式 3.1 new/delete操作内置类型 3.2 new 和delete 操作自定义类型 四、operator new与operator delete函数 五、new和delete的实现原理 5.1 内置类型 5.2 自定义类型 六、定位new表达式(placement-new)(了解) 七、常见面试题 7.1 malloc/free和new/delete的区别 7.2 内存泄漏 7.2.1 什么是内存泄漏,内存泄漏的危害 7.2.2 内存泄漏分类(了解) 7.2.3 如
目录 前言 一、基础知识 1.1 什么是栈区? 1.2 寄存器 1.3 测试代码和一些其它的 二、函数栈帧的创建和销毁的过程 2.1 _tmainCRTStartup函数(调用main函数)栈帧的创建 2.2 main函数栈帧的创建 2.3 main函数内执行有效代码 2.4 Add函数栈帧的创建 2.5 Add函数内执行有效代码 2.6 Add函数栈帧的销毁 2.7 main函数代码继续执行 三、所需反汇编代码总览 四、总结
目录 一、面向过程和面向对象初步认识 二、类的引入 三、类的定义 四、类的访问限定符及封装 4.1 访问限定符 4.2 封装 五、类的作用域 六、类的实例化 七、类对象模型 7.1 计算类对象的大小 7.2 类对象的存储方式猜测 八、this 指针 8.1 this指针的引出 8.2 this 指针的特性 九、关于C++的代码风格
目录 前言 一、冯诺依曼体系结构 1.1 冯诺依曼体系结构是什么 1.2 冯诺依曼体系结构为什么这么设计 1.2.1 思考 1.2.2 了解一下计算机的存储分级 1.2.3 解释 1.3 往下要明确几点 1.4 冯诺依曼实例 二、操作系统(Operating System) 2.1 操作系统概念 2.2 为什么要有操作系统
目录 六、Linux 软件包管理器 yum 6.1 前言 6.2 什么是软件包 6.3 查看软件包 6.4 如何安装软件 6.5 如何卸载软件 6.6 yum 源 6.7 一些好玩的命令七、Linux第一个小程序-进度条 7.1 \r&&\n 7.2 行缓冲区概念 7.3 进度条代码 八、Linux 使用 git 命令行 8.1 版本控制 8.2 git 的历史 8.3 git 安装 8.4 克隆远程仓库到本地 8.5 git 三板斧8.51 三板斧第一招: git add 8.52 三板斧第二招: git commit 8.53 三板斧第三招: g
目录 一、开发工具 二、Linux编辑器 - vim使用 2.1 vim 的基本概念 2.2 vim的基本操作 2.3 vim正常模式命令集 2.4 vim末行模式命令集 2.5 简单vim配置 2.5.1 配置文件的位置
目录 一、shell命令以及运行原理 二、Linux 权限的概念 三、 Linux权限管理 3.0 什么是权限? 3.1 文件访问者的分类(人) 3.2 文件类型和访问权限(事物属性) 3.3 文件权限值的表示方法 3.4 文件访问权限的相关设置方法 3.5 umask 命令 四、目录的权限 五、粘滞位
目录 一、关于C++ 1.1 什么是C++ ? 1.2 C++ 发展史 二、C++关键字(C++98) 三、命名空间 3.1 命名空间出现的原因 3.2 命名空间的定义
目录 动态通讯录的实现 一、实验的目的和意义 二、实验内容描述 三、功能描述 四、数据结构 1、三大模块 2、结构设计 3、动态开辟 4、文件操作 5、主要函数 五、流程图及模块算法 1.Contacct 程序运行流程图 2、AddContct(增加)函数流程图 3、DelContct(删除)函数流程图 4、SearchContct(查找)函数流程图 5、ModifyContct(修改)函数流程图 6、SortContct(排序)函数流程图 六、实验测试结果 七、实验总结 八、源代码 1、DynamicContact.h 2、DynamicC
目录 一、数据类型的介绍 二、整型在内存中的存储 1、补充两点 (1)首先,要了解原码、反码、补码(整型的储存) (2).有符号(signed)与无符号(unsigned)的区别 2、大小端介绍
目录 表达式求值 一、先补充一点(为下文做准备) 1.首先,要了解原码、反码、补码(简单说一下) 2.有符号(signed)与无符号(unsigned)的区别 二、隐式类型转换(整型提升) 1.什么是整型提升? 2.整型提升的意义 3.有符号(signed)类型的整型提升 3.无符号(unsigned)整形提升 4.简而言之 5.例子 三、算术转换 四、
目录 C语言中六种位运算符: 一、位移运算符 1、移位运算符简介 2、先要了解一点 3、 << 左移运算符 4、>>右移运算符 5、警告 二、 1、& 按位与 2、| 按位或 3、^ 按位异或
目录 位移运算符 1、移位运算符简介 2、先要了解一点 3、 << 左移运算符 4、>>右移运算符 5、警告 6、最后
1.冒泡排序简介 冒泡排序(Bubble Sort),是一种较简单的排序算法。
目录 1.猜数字游戏规则 2.猜数字的实现 (1)猜数字的主体 (2)猜游戏的真正主体 3.总代码 4.最后
给定两个整数,让你求这两个数的最大公约数 最大公约数顾名思义就是:这几个整数共有的约数中最大的一个。
给点一个数,判断它为多少进制??
网上搜了好多,感觉这个挺好用的(亲测有效)
符号%除了取余,另一个含义就是引导符;如%d,%c... 下面就列举一些(不深入):