
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 · 352 阅读 · 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 · 582 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(8)—— 按位与、或、异或等运算方法
一、按位与(&)1、运算规则0&0=0;0&1=0;1&0=0;1&1=1;即:两位同时为“1”,结果才为“1”,否则为02、运算用途清零。(与对应位置0进行与运算)例如:0110 0011 & 1111 0000 = 0110 0000 // 将低4位清零取一个数中指定位(与对应位置1进行与运算)例如:0110 0011 & 0000 1111 = 0000 0011 // 取低4位二、按位或(|)1、运算原创 2020-08-31 08:36:12 · 294 阅读 · 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 · 188 阅读 · 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 · 1934 阅读 · 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 · 236 阅读 · 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 · 206 阅读 · 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 · 368 阅读 · 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 · 213 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(3)—— 腾讯面试题目总结
Tsai笔记:C++学习随性笔记(3)—— 腾讯面试题目总结1、有几种内存空间,及其区别?(隐含问题:栈和堆内存、静态和动态空间区别) 1.栈区(stack):由编译器自动分配释放,存放函数参数值,局部变量值等,其操作方式类似于数据结构的栈。 2.堆区(heap):由程序员分配释放,若程序员不释放的话,程序结束时可能由系统回收,值得注意的是他与数据结构的堆是两回事,分配方式...原创 2020-03-13 00:06:48 · 471 阅读 · 0 评论 -
Tsai笔记:C++学习随性笔记(2)—— 数据结构:顺序表的基本操作
Tsai笔记:C++学习随性笔记(2)—— 数据结构:顺序表的基本操作Tsai三步。(第一步,功能说明。第二步,结果图显示。第三步,代码展示)第一步,功能说明。1、线性表的顺序存储 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表在逻辑结构上相邻的元素存储在连续的物理存储单元中,即:通过数据元素物理存储的连续性来反应元素之间逻辑上的相...原创 2019-03-13 21:43:21 · 532 阅读 · 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 · 406 阅读 · 0 评论