![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
常识
难选昵称
独学而无友,孤陋则寡闻。学而不思则罔,思而不学则殆。
展开
-
c语言和c++的区别
C是一个结构化语言,如谭老爷子所说:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之...原创 2019-04-10 10:28:24 · 250 阅读 · 0 评论 -
进制的转换
小数 十进制小数到二进制的转换 规则:小数部分乘以2,取整数部分一次从左往右放在小数点后,直至小数点后为0。例如: 将其转换为二进制后是多少?0.125 * 2 = 0.25 取整数为 00.25 * 2 = 0.5 取整数为 00.5 * 2 = 1 取整数为 1则得到的二进制的结果就是0.001 二进制小数到十进制的转换 规则:二进制的小...原创 2019-08-26 10:47:58 · 693 阅读 · 0 评论 -
哈夫曼树及哈夫曼编码
知识点一:哈夫曼树给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的路径长度是从树根到每一结点的路径长...原创 2019-07-23 21:59:26 · 5474 阅读 · 0 评论 -
对结构体元素进行排序
知识点一:sort()sort()函数的头文件是algorithm,又被称为快速排序。其使用形式为:sort(start_address, end_address, [rule])我们在使用简单的对数组元素或是字符串排序的时候,第三个参数往往是省略的,代表你的排序规则默认是从小到大排序,当然也可以带参数,那么就可以通过用系统的排序规则sort(a,a+7,less<int>(...原创 2019-07-23 20:58:51 · 8753 阅读 · 0 评论 -
printf格式化输出、大端小端原理、struct结构体对齐、memcpy函数实现原理
1.printf格式化输出(参考链接:https://baike.baidu.com/item/printf%28%29/402521?fr=aladdin)printf()函数是式样化输出函数, 一般用于向准则输出设备按规定式样输出消息。正在编写步骤时经常会用到此函数。printf()函数的挪用式样为: printf("<式样化字符串>",<参数表>);函数p...原创 2019-07-18 21:01:39 · 1389 阅读 · 1 评论 -
深入浅出静态链接和动态链接
前言原文:https://blog.csdn.net/kang___xi/article/details/80210717正文作为一名C/C++程序员,对于编译链接的过程要了然于胸。首先大概介绍一下,编译分为3步,首先对源文件进行预处理,这个过程主要是处理一些#号定义的命令或语句(如宏、#include、预编译指令#ifdef等),生成*.i文件;然后进行编译,这个过程主要是进行词法...转载 2019-07-11 22:12:46 · 174 阅读 · 0 评论 -
死锁
前言:这一部分的学习,其实也有很多博客有把几个关键的点罗列出来,也是很多人面试遇到的,但是还是想完整的学习一下,不想吃fast noodle的我又去万能的大B站上找了个视频,链接如下https://www.bilibili.com/video/av56600596?from=search&seid=10641281520121400845,大家可以自行学习,我尽量保证学习的笔记没有遗落...原创 2019-07-11 19:18:54 · 142 阅读 · 0 评论 -
构造函数
问题1:构造函数有什么特点?初始化的顺序又怎么样的?类外访问类中的成员,只能访问public成员,通过对象访问成员。特点:1.构造函数名和类名相同;2.构造函数没有返回值,void也算返回值;3.构造函数创建对象的时候调用构造函数;函数名用对象名替换,剩下的部分必须一致(参数)4.默认的构造函数没有参数,注意点:如果自己写了构造函数——默认的构造函数不存在;5....原创 2019-07-11 10:45:57 · 259 阅读 · 0 评论 -
处理机调度
前言:这一部分的学习,其实也有很多博客有把几个关键的点罗列出来,也是很多人面试遇到的,但是还是想完整的学习一下,不想吃fast noodle的我又去万能的大B站上找了个视频,链接如下https://www.bilibili.com/video/av56600596?from=search&seid=10641281520121400845,大家可以自行学习,我尽量保证学习的笔记没有遗落...原创 2019-07-11 17:00:58 · 267 阅读 · 0 评论 -
c++符号表的作用、继承方法、多态
问题1:如何通过变量名知道其地址?在引用的时候,我们知道那是nickname,那么两个变量,如何知道对应同一地址空间?答:网上搜了几篇博客,有一篇讲的不错,推荐给大家:http://lishicongli.blog.163.com/blog/static/1468259020115154859706/。摘录其中比较关键的点:编译器会生成一个叫做“符号表”的数据结构来维护变量名和内存地址直...原创 2019-07-09 21:24:33 · 2772 阅读 · 0 评论 -
一套图 搞懂“时间复杂度”
写在前面:这篇文章是在公众号: 程序员小灰 中发布的。是我到目前为止所看到的关于时间复杂度介绍的最好的文章,简介 清晰 明了。所以拿来po出来 仅供学习交流,如侵则删。现已将此文收录至:《数据结构》C语言版 (清华严蔚敏考研版) 全书知识梳理正文:时间复杂度的意义究竟什么是时间复杂度呢?让我们来想象一个场景...转载 2019-04-28 15:19:32 · 140 阅读 · 0 评论 -
string 与 vector
类型名 定义 类型 初始化 c++11新特性 string 可变长度的字符型序列 类 1.string str1; //默认初始化,str1是一个空字符串; 2.string str1(str2); //str1是str2的副本; 3.string str1 = str2; //str1是副本;等价于2形式; 4....原创 2019-04-12 11:35:14 · 1786 阅读 · 1 评论 -
进程、线程
1. 定义进程是执行中一段的程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。线程是每一个进程中执行的每个任务就是一个线程。是进程中的一条执行路线。线程是进程中执行运算的最小单位。线程是任务调度和执行的最小单元。写好的a.c文件,经过gcc编译:gcc a.c,就会生成a.out文件(gcc...原创 2019-04-08 10:19:23 · 191 阅读 · 0 评论 -
处理类型
1. auto 类型说明符作用:auto 让编译器通过初始值来推算变量的类型。但是,编译器推断出来的 auto 类型有时候和初始值的类型并不完全一样,编译器会适当地改变结果类型使其更符合初始化规则。注意:auto 定义的变量必须有初始值。 不能为非常量引用绑定字面值:auto & h = 42; ( × ) 如果希望推断出的 auto 类型是一个顶层const,需要明确指出...原创 2019-04-11 11:17:33 · 128 阅读 · 0 评论 -
hash算法及性能比较
1.拉链法拉链法就是通过数组和链表共同组成key和许多value的集合来减少冲突。缺点:链表的缺点有两个:第一,其长度太长时,会导致搜索性能不好。第二,链表在内存中的存放地址是不连续的,一个缓存行的大小是64B,而每一个node可能占16个字节,如果是数组,每次就可以连续的访问4个node,但是对于链表中的每一个node,就只能单独访问,这样会导致cache的利用率不好。2.自然...原创 2019-09-02 11:09:33 · 2587 阅读 · 0 评论