
C++
文章平均质量分 86
C++
来自海王星
目前正在学习:C/C++/数据结构/操作系统
阶段目标:进大厂
展开
-
一文秒杀二分查找所有题目
朴素二分查找 思想及实现 这是学算法的入门算法,先举个最简单的例子: 猜数字1:我心中默念一个数字,范围在1~100,你每次可以猜一个数,我会回答你大了,小了,直到猜中为止。 答:比如假设要猜的数字是38,整个过程如下: 猜测范围(1,100),猜50,大了。所以比50大的都不用考虑了,包括50。 猜测范围(1,49),猜25,小了。所以比25小的也不用考虑了,以此推论。 猜测范围(26,49)猜37,小了。 猜测范围(38,49)猜44,大了。 猜测范围(38,43)猜40,大了。 猜测范围(原创 2021-01-30 13:47:38 · 306 阅读 · 0 评论 -
关于位运算的一些妙用
位运算回顾 所谓位运算,就是对二进制0|1进行一些操作。感觉好像平时用的并不太多,但是这些运算符有时候能完成一些很特殊的任务。比如: & :与运算 口诀: 11得1,其余取0。 作用: 清零 如果想将一个变量或者地址清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。 取出一个数的指定位 找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。 例:设X=10101110, 取X的低4位,用 X & 00原创 2020-10-15 22:16:10 · 428 阅读 · 2 评论 -
C++笔记之踩坑记录
map的count查找自动添加问题 count:返回的是被查找元素的个数。如果有,返回1;否则,返回0 unordered_map <char,int> M; m['a']=1;m['b']=2; cout << m.size() << endl; //此时map 长度为2 m.count['c']; cout << m.size() << endl; //此时已经变成3了,因为多了'c':0 //为了防止这种操作,可以 ...原创 2020-10-12 20:03:09 · 200 阅读 · 0 评论 -
C++笔记(二):函数高级特性
默认参数 声明和定义只能有一个地方有默认值。 函数重载 满足条件: 同一个作用域下 函数名称相同 函数参数类型不同,或者个数不同,或者顺序不同 注:返回值不能作为重载条件 引用作为重载条件 void func(int &a); //int &a=10 不合法 void func(const &a); // const int &10=10 合法 //调用 int a=10; func(a); //此时调第一个 func(10);//此时调第二个 3.函数重载碰到默认参数原创 2020-09-22 09:42:09 · 136 阅读 · 0 评论 -
C++笔记:(1):C++内存模型
内存分区模型 C++程序在执行时,将内存区分为四块: 代码区:存放函数体的二进制代码,由操作系统进行管理 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配释放,存放函数的参数值,局部变量 堆区:由程序员分配和释放,若其不释放,程序结束时由操作系统回收。 内存四区的意义: 不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程。 1.1 程序运行前 在程序编译后,生成了exe可执行程序,未执行的该程序分为2个区域: 代码区: 存放CPU执行的机器指令 代码区是共享的,共享的目的是对于频原创 2020-09-21 12:58:23 · 222 阅读 · 0 评论