![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习随性笔记
Tsaichasel
平日快乐
展开
-
Tsai笔记:C++学习随性笔记(4)—— 亲自将十大排序算法总结(进阶版)
一.基本介绍 一个算法在n规模下所消耗的时间消耗从大到小如下: O(1) < O(log n) < O(n) < O(n log n) < O(n ^ 2) < O(n ^ 3)指数级的增长是非常快的. 二.常见的排序算法 根据时间复杂度的不同,常见的算法可以分为3大类。 1.O(n²) 的排序算法 冒泡排序 选择排序 插入排序 2.O(n log n) 的排序算法 希尔排序 归并排序 快速排序 堆排序 3.线性的排序算法 计数排序 桶排序 基数排序 各种排序的具体原创 2020-09-17 15:23:52 · 265 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(9)—— Protobuf序列化原理
Protobuf序列化原理一、Protobuf序列化原理简介1.1 序列化1.2 反序列化二、Protobuf编码方式2.1 Varint编码2.2 待补充 一、Protobuf序列化原理简介 1.1 序列化 序列化是将数据结构或对象转换成二进制字节流的过程。Protobuf对于不同的字段类型采用不同的编码方式和数据存储方式对消息字段进行序列化,以确保得到高效紧凑的数据压缩。 Protobuf序列化过程如下: (1)判断每个字段是否有设置值,有值才进行编码。 (2)根据字段标识号与数据类型将字段值通过不同的原创 2020-09-09 18:12:07 · 431 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(8)—— 按位与、或、异或等运算方法
一、按位与(&) 1、运算规则 0&0=0; 0&1=0; 1&0=0; 1&1=1; 即:两位同时为“1”,结果才为“1”,否则为0 2、运算用途 清零。(与对应位置0进行与运算)例如: 0110 0011 & 1111 0000 = 0110 0000 // 将低4位清零 取一个数中指定位(与对应位置1进行与运算)例如: 0110 0011 & 0000 1111 = 0000 0011 // 取低4位 二、按位或(|) 1、运算原创 2020-08-31 08:36:12 · 225 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(7)—— 左值和右值 && move和forward
Tsai笔记:C++学习随性笔记(7)—— 左值和右值 && move和forward 一直没搞懂左值和右值 && move和forward,看到知乎一个老哥的文章突然恍然大悟。话不多说,贴上连接:C++11朝码夕解: move和forward。后期有时间整理一份文章学习记录更加深刻理解。 以下简单说明: 背景 (1) 问题: C++传值默认是copy、临时变量copy开销太大 (2) 引入: rvalue, lvalue, rvalue reference概念 (3) 方法原创 2020-08-02 11:45:41 · 143 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(5)—— 虎牙直播C++后台开发面试(已拿offer-》虎牙直播内推)
Tsai笔记:C++学习随性笔记(5)—— 虎牙直播C++后台开发面试(已拿offer) 一、前言 四大法宝:C++编程语言、计算机网络、设计模式、数据结构与算法 + 操作系统、网络编程、数据库 待补充。。。 二、技术一、二、三面总结(75min+45min+30min) 注:Q:面试官,W:泛指内容 注:有些问题可能忘记了,以下是面试官大部分提问的东西。 Q:请简单自我介绍? W:每个技术面试官都会具体问项目的内容,以及深挖了里面的技术;还会让你找出你亮点最大的一个项目进行介绍?原创 2020-05-15 15:38:58 · 1771 阅读 · 0 评论 -
Tsai笔记:LeetCode笔记(1)—— 链表
Tsai笔记:LeetCode笔记(1)—— 链表 一、相关题型 1. 找出两个链表的交点 2. 链表反转 3. 归并两个有序的链表 4. 从有序链表中删除重复节点 5. 删除链表的倒数第 n 个节点 6. 交换链表中的相邻结点 7. 链表求和I 8. 链表求和II 9. 回文链表 10. 分隔链...原创 2020-04-19 14:07:42 · 188 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(6)—— hashmap (现在已包含在STL中unordered_map)
Tsai笔记:C++学习随性笔记(6)—— hashmap 一.介绍 1.1 特性 关联性:通过key去检索value,而不是通过绝对地址(和顺序容器不同) 无序性:使用hash表存储,内部无序 Map : 每个值对应一个键值 键唯一性:不存在两个元素的键一样 动态内存管理:使用内存管理模型来动态管理所需要的内存空间 1.2 Hashtable和bucket 由于u...原创 2020-03-28 18:05:44 · 176 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(5)—— 华为面试题目总结
Tsai笔记:C++学习随性笔记(5)—— 华为面试题目总结 一.在一个二维01矩阵中找到全为1的最大正方形,返回其面积。 如以下样例样例: 返回 4(2*2) 解题思想 先构造一个辅助矩阵tmp,把matrix矩阵的第一行和第一列元素直接复制; 对于剩下元素,若matrix[i][j]=0, 则tmp[i][j]=0;若matrix[i][j]=1,则tmp[i][j]= m...原创 2020-03-28 13:43:51 · 281 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(4)—— 亲自将十大排序算法总结
Tsai笔记:C++学习随性笔记(4)—— 亲自将十大排序算法总结 一.基本介绍 一个算法在n规模下所消耗的时间消耗从大到小如下: O(1) < O(log n) < O(n) < O(n log n) < O(n2) < O(n3) < O(2n)指数级的增长是非常快的. 二.常见的排序算法 根据时间复杂度的不同,常...原创 2020-03-27 14:31:28 · 180 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(3)—— 腾讯面试题目总结
Tsai笔记:C++学习随性笔记(3)—— 腾讯面试题目总结 1、有几种内存空间,及其区别?(隐含问题:栈和堆内存、静态和动态空间区别) 1.栈区(stack):由编译器自动分配释放,存放函数参数值,局部变量值等,其操作方式类似于数据结构的栈。 2.堆区(heap):由程序员分配释放,若程序员不释放的话,程序结束时可能由系统回收,值得注意的是他与数据结构的堆是两回事,分配方式...原创 2020-03-13 00:06:48 · 395 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(2)—— 数据结构:顺序表的基本操作
Tsai笔记:C++学习随性笔记(2)—— 数据结构:顺序表的基本操作 Tsai三步。(第一步,功能说明。第二步,结果图显示。第三步,代码展示) 第一步,功能说明。 1、线性表的顺序存储 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表在逻辑结构上相邻的元素存储在连续的物理存储单元中,即:通过数据元素物理存储的连续性来反应元素之间逻辑上的相...原创 2019-03-13 21:43:21 · 480 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(1)—— template函数模板
Tsai笔记:C++学习随性笔记(1)—— template函数模板 Tsai三步。(第一步,功能说明。第二步,结果图显示。第三步,代码展示) 第一步,功能说明。 在c++入门中,很多人会接触swap(int &a, int &b)这样的函数类似代码如下: void swap(int &a , int &b) { int temp = a; ...原创 2019-03-06 17:23:21 · 339 阅读 · 0 评论