- 博客(100)
- 收藏
- 关注
原创 解决C语言重复定义:multiple definition of“xxx”问题
解决C语言重复定义:multiple definition of“xxx”问题
2021-09-14 18:55:04
25060
原创 OJ输入的坑---不定长数组的输入
上次遇到这个问题,没有放在心上,今天又遇到了,决定把这个坑给埋了。。。不定长数组的输入问题举个例子吧题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果输入一个不定长的数组,当遇到换行表示数组输入结束,但是牛客网的输入是多组数据循环输入的,我决定把数组用完就清空,然后再输入。。。关于vector的清空函数clean()函数只清空元素,但是不回收空间erase()循环删除,不回收空间使用swap,清除元素.
2020-09-02 16:03:42
806
原创 当我们打开网页时,浏览器究竟做了什么
面试的时候经常被问到:在浏览器中输入https://www.baidu.com/index.html会发生什么?
2020-07-19 17:26:19
1128
1
原创 C/C++内存管理
C/C++内存管理这一部分将会介绍下列这些主要内容:1、C/C++内存分布2、C语言中动态内存管理方式3、C++动态内存管理方式4、operator new与operator delete5、new与delete的实现原理6、定位new表达式7、常见面试题...
2020-06-04 16:45:51
163
原创 哈希表相关问题
1、哈希的概念元素的存储位置与它的关键码一一映射,在查找元素的时候不用进行比较,可以直接在表中检索出元素的值,所以查找的时间复杂度是O(1)2、哈希冲突不同关键字通过相同哈希数计算出相同的哈希地址3、产生哈希冲突的原因设计的哈希函数不够合理(常用的哈希函数:直接的定制法,除留余数法)4、解决哈希冲突的方法(1)闭散列(开放定址法)发生哈希冲突时,如果哈希表未被装满,说明哈希表中患...
2020-04-20 11:06:41
471
原创 inline函数
内联函数的出现是为了解决宏存在的问题宏的实现在预处理器而不是在编译器,所以在C++中使用宏存在两个问题 ,分别是宏的实现在预处理阶段,没有类型检测,不安全,还有在C++中不允许预处理其访问类的成员函数,这也就说明宏不能作为类的成员函数,为了解决这两个问题,引出了内联函数。内联函数任何在类中定义的函数都会自动成为内联函数,也可以在非类的函数前面加上inline关键字,使之成为内联函数。(必须将...
2020-04-20 11:03:18
179
原创 Linux:进程间通信(IPC)
进程间通信1、进程间通信的概念进程间通信是操作系统为用户提供的几种通信方式。进程间因为每一个进程都有一个虚拟地址空间,在保证了进程独立性的同时,却使得进程间无法直接通信,因此需要操作系统来提供进程间通信方式,并且因为通信的场景不同,所以提供的方式也有多种。2、进程间通信的目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需...
2020-03-28 21:51:07
177
原创 【剑指offer】栈的压入、弹出序列
栈的压入、弹出序列题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路首先需要一个辅助栈来存储输入栈中遍历过的元素1、将输...
2020-03-27 23:20:44
111
原创 【剑指offer】顺时针打印矩阵
顺时针打印矩阵题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印出数字1,2,3,4,...
2020-03-23 22:13:38
117
原创 Linux:基础IO
1、标准库IO接口2、系统调用IO接口3、文件描述符(fd)4、文件流指针和文件描述符的关系5、重定向的实现原理6、文件系统 == 磁盘文件管理7、软链接文件与硬链接文件的区别8、动态库与静态库的生成与使用
2020-03-22 23:07:20
140
原创 【数据结构】二叉平衡树(AVL树)
二叉平衡树引入1、AVL树的概念2、AVL树的操作2.1 AVL树结点的定义2.2 AVL树的插入2.3 AVL树的旋转2.4 AVL树的删除3、AVL树的性能分析引入二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明...
2020-03-17 21:13:09
740
原创 【数据结构】二叉搜索树
二叉搜索树1、二叉搜索树的概念2、搜索二叉树的操作2.1 二叉搜索树的查找2.2 二叉搜索树的插入2.3 二叉搜索树的删除3、二叉搜索树的性能分析3.1 时间复杂度3.2 空间复杂度3.3 平均查找长度1、二叉搜索树的概念二叉搜索树(二叉排序树)若不为空,则具有以下特性:每个结点有唯一的值,且每个结点的值均不相同;若它的左子树不为空,则它的左子树的所有结点均小于根节点的值;若它的右子树...
2020-03-17 14:10:40
848
原创 Linux:环境变量详解
环境变量1、环境变量的基本概念2、常见的环境变量3、环境变量的操作3.1 环境变量的操作命令3.2 代码中对环境变量的操作1、环境变量的基本概念定义:用于存储系统运行环境参数的变量作用:使系统的参数配置更加灵活,可以通过环境变量向进程传递参数,环境变量通常具有某些特殊用途,还有在系统当中通常具有全局特性。2、常见的环境变量环境变量字符串都是name=value这样的形式,大多数name由...
2020-03-12 18:26:55
236
原创 详解布隆过滤器的原理、使用场景和优缺点
布隆过滤器1、 布隆过滤器的概念2、 布隆过滤器的插入与查找2.1 布隆过滤器的插入2.2 布隆过滤器的查找2.3 布隆过滤器产生误判的原因3、布隆过滤器的删除4、布隆过滤器优点5、布隆过滤器缺陷6、使用场景7、海量数据应用例题1、 布隆过滤器的概念布隆过滤器(BloomFilter)是一种紧凑型的、比较巧妙的概率型数据结构,特点是高效地插入和查询,可以用来告诉你 某样东西一定不存在或者可能...
2020-03-10 16:14:51
3664
原创 C++:位图总结
1、位图的概念位图(bitset)是一种常用的数据结构,常用在给一个很大范围的数,判断其中的一个数是不是在其中。在索引、数据压缩方面有很大的应用。位图是用数组实现的,数组的每一个元素的每一个二进制位都表示一个数据,0表示该数据不存在,1表示该数据存在如下图:一般来说一个位图所占的空间为512M,所以说要判断一个数是否在0~4294967295中需要的空间是512M(即一个位图)来解决。...
2020-03-09 22:23:49
586
转载 在C++中对仿函数的理解
文章转自:https://blog.youkuaiyun.com/yuhan61659/article/details/81356051先考虑一个简单的例子:假设有一个vector,你的任务是统计长度小于5的string的个数,如果使用count_if函数的话,你的代码可能长成这样: bool LengthIsLessThanFive(const string& str) { retu...
2020-03-08 17:22:03
197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人