03 2020 档案

摘要:看C++primer,学习了,看起来还挺有用的。 pair大家都会,但局限性就是只能有两个成员。如果我们想做一个比较随意的、多成员的容器类型,就需要tuple了: int main(){ tuple<int,int,int> p={1,2,3}; p=make_tuple(4,2,56); //对应 阅读全文
posted @ 2020-03-31 00:41 NeoZy 阅读(378) 评论(0) 推荐(0)
摘要:可变参数模板函数写法: 模板参数里写typename... args,表明args是一个可变参数。 之后再函数参数里args后面也要加...,以表示该参数为可变参数。 函数参数中对于args的修饰,会扩展到所有该args的参数,比如下面代码: //可变参数模板函数使用方法1:递归调用,每次将可变参数 阅读全文
posted @ 2020-03-31 00:11 NeoZy 阅读(1000) 评论(0) 推荐(0)
摘要:题目: 二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字不在0和1之间,或者无法精确地用32位以内的二进制表示,则打印“ERROR”。 解答: 0.625:*2=1.25,把1拿走得到0.1;剩下0.25*2=0.5,没有1,得到0. 阅读全文
posted @ 2020-03-30 13:54 NeoZy 阅读(219) 评论(0) 推荐(0)
摘要:首先明确几个问题: 1.成员函数和友元函数、友元类的权限是一样一样一样一样的,是最高的权限,private、protected、public成员都可以随意访问。 2.用户代码(类外调用的其他代码)权限是最低的,只有类的public成员才能访问(不考虑静态成员),protected、private都无 阅读全文
posted @ 2020-03-30 01:29 NeoZy 阅读(455) 评论(0) 推荐(0)
摘要:重载:针对于普通函数。 要求函数名相同,形参列表不同,返回值无所谓。 注意不能仅仅通过返回值来区分重载函数。例子:void f(){} 和int f(){}这两个函数定义是错误的,不能同时定义这两个函数! 比如: void f(int x){} void f(double x){} 覆盖(重写):针 阅读全文
posted @ 2020-03-30 00:51 NeoZy 阅读(268) 评论(0) 推荐(0)
摘要:题目: 你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗?请返回该海洋区域到离它最近的陆地区域的距离。 我们这里说的距离是『曼哈顿距离』( Manh 阅读全文
posted @ 2020-03-29 23:32 NeoZy 阅读(332) 评论(0) 推荐(0)
摘要:Kruscal原理: 使用贪心算法。先将所有边按照权值从小到大排序,每个点初始都是一个树(一个节点的树)。从前到后遍历边集,对于当前边x-y来说,如果x、y已经在我们的最小生成树里,那么跳过该边。 如果x、y至少有一个不在我们的最小生成树里,将该边加入最小生成树,并且将包含x的树和包含y的树合并为一 阅读全文
posted @ 2020-03-29 22:55 NeoZy 阅读(257) 评论(0) 推荐(0)
摘要:题目: 给定一个单词列表,我们将这个列表编码成一个索引字符串 S 与一个索引列表 A。 例如,如果这个列表是 ["time", "me", "bell"],我们就可以将其表示为 S = "time#bell#" 和 indexes = [0, 2, 5]。 对于每一个索引,我们可以通过从字符串 S  阅读全文
posted @ 2020-03-28 21:04 NeoZy 阅读(190) 评论(0) 推荐(0)
摘要:数据库太菜,怕笔试面试考sql语句,练几天 给定表 customer ,里面保存了所有客户信息和他们的推荐人。 + + + +| id | name | referee_id|+ + + +| 1 | Will | NULL || 2 | Jane | NULL || 3 | Alex | 2 || 阅读全文
posted @ 2020-03-28 02:56 NeoZy 阅读(233) 评论(0) 推荐(0)
摘要:题目: 插入。给定两个32位的整数N与M,以及表示比特位置的i与j。编写一种方法,将M插入N,使得M从N的第j位开始,到第i位结束。假定从j位到i位足以容纳M,也即若M = 10 011,那么j和i之间至少可容纳5个位。例如,不可能出现j = 3和i = 2的情况,因为第3位和第2位之间放不下M。 阅读全文
posted @ 2020-03-27 15:21 NeoZy 阅读(162) 评论(0) 推荐(0)
摘要:题目: 从左向右遍历一个数组,通过不断将其中的元素插入树中可以逐步地生成一棵二叉搜索树。给定一个由不同节点组成的二叉树,输出所有可能生成此树的数组。 示例:给定如下二叉树 2 / \ 1 3返回: [ [2,1,3], [2,3,1]] 解答: 不会做,后来看了题解 题目的意思是,按某种顺序依次插入 阅读全文
posted @ 2020-03-27 13:28 NeoZy 阅读(642) 评论(0) 推荐(0)
摘要:close_wait:四次挥手中,服务器收到客户端finish请求发回ack之后,再等待一段时间,再发回finish。 原因:服务器有的数据没传完/子进程继承了父进程的socket套接字,这样套接字有2个引用计数,子进程close套接字只会使引用计数减1,但不会变0(类似c++11的shared_p 阅读全文
posted @ 2020-03-27 11:01 NeoZy 阅读(228) 评论(0) 推荐(0)
摘要:Read uncommitted 读未提交 公司发工资了,领导把5000元打到singo的账号上,但是该事务并未提交,而singo正好去查看账户,发现工资已经到账,是5000元整,非常高 兴。可是不幸的是,领导发现发给singo的工资金额不对,是2000元,于是迅速回滚了事务,修改金额后,将事务提交 阅读全文
posted @ 2020-03-27 03:08 NeoZy 阅读(146) 评论(0) 推荐(0)
摘要:我先简单说下自己对HTTPS的大致描述,也是看了几篇博客之后的想法: 首先要简单了解对称加密和非对称加密: 对称加密:加密解密都用一个秘钥。 非对称加密:一个公钥,一个私钥。可以用公钥加密,私钥解密;也可以私钥加密,公钥解密。其他的组合都不行。 了解这点知识就够了,下面我们开始HTTPS的描述: H 阅读全文
posted @ 2020-03-27 02:31 NeoZy 阅读(199) 评论(0) 推荐(0)
摘要:前几天面试被问到了,没答好,记录一下: 首先说红黑树为什么不行: 1.红黑树必须存在内存里的,数据库表太大了,存不进去。 2.即使你找到了把红黑树存进硬盘的方法,红黑树查找一个节点最多要查logN层,每一层都是一个内存页(虽然你只是想找一个节点,但硬盘必须一次读一个页。。),那么一共logN次IO, 阅读全文
posted @ 2020-03-27 02:14 NeoZy 阅读(3339) 评论(1) 推荐(0)
摘要:深信服笔试考了这个不会。查了下相关资料,记录一下。 a是某结构体类型 ((a*)0)是把一个为0的int变量强转为a*类型 ((a*)0)->b是取该指针的成员b &((a*)0)->b是取成员b的地址 (int)&((a*)0)->b)是将b的地址强转为int。因为之前该指针是强转0来的,所以结构 阅读全文
posted @ 2020-03-25 19:59 NeoZy 阅读(403) 评论(0) 推荐(0)
摘要:先说下http的几个版本区别: 转载于:https://www.cnblogs.com/hanxuming/p/8026206.html HTTP/0.9 1990年问世,那时的HTTP并没有作为正式的标准被建立,这时的HTTP其实含有HTTP/1.0之前版本的意思,那时候还有严重设计缺陷,只支持G 阅读全文
posted @ 2020-03-25 18:05 NeoZy 阅读(5416) 评论(0) 推荐(3)
摘要:迭代器失效问题一般是指对于stl容器来说,调用erase某迭代器之后,就不能再使用这个iterator了。 解决方法: (1):erase(iter++);这样可以继续使用该iter (2):it=erase(iter);这是利用erase函数的返回值,一般的erase函数都会返回一个删除迭代器的后 阅读全文
posted @ 2020-03-25 00:20 NeoZy 阅读(209) 评论(0) 推荐(0)
摘要:const int x1=0;//常量写法1 int const x2=0;//常量写法2 int x3=0; int * const p1=&x3;//指针常量(指针类型的常量,对象是指针类型的,指针本身是常量,顶层const) const int* p2=&x1;//指向常量的指针(指针本身是变 阅读全文
posted @ 2020-03-25 00:07 NeoZy 阅读(176) 评论(0) 推荐(0)
摘要:为了克服普通队列的“假溢出”缺点,使用循环队列,用一个数组来模拟圆环,到达末尾后利用取模运算重新回到队首。 实现: front为队首指针,back为队尾指针。 由于队列满和队列空时front和back都相等,所以人为空一个元素。即如果队列数据结构容量为N,循环队列能容纳的有效数据为N-1。这样队列满 阅读全文
posted @ 2020-03-24 22:57 NeoZy 阅读(341) 评论(0) 推荐(0)
摘要:题目: 设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。 如果指定节点没有对应的“下一个”节点,则返回null。 示例 1: 输入: root = [2,1,3], p = 1 2 / \1 3 输出: 2示例 2: 输入: root = [5,3,6,2,4,null,nu 阅读全文
posted @ 2020-03-24 14:47 NeoZy 阅读(213) 评论(0) 推荐(0)
摘要:FCFS(First come first serve)先来先服务算法: 简单的排队算法,维护一个队列,后来的只能排在队尾等待。 非抢占。 缺点:不够智能,对于cpu密集型进程不友好,比如:一个只需要1ms运行时间的cpu密集型进程,但是之前有一个要读5s的io密集型进程。那么即使那个cpu密集型进 阅读全文
posted @ 2020-03-24 01:46 NeoZy 阅读(1118) 评论(0) 推荐(0)
摘要:今天字节面试的时候问到了协程的内容,然而我根本不会,赶紧补补课。 粘贴一下,链接:https://www.jianshu.com/p/6dde7f92951e 协程(Coroutines)是一种比线程更加轻量级的存在,正如一个进程可以拥有多个线程一样,一个线程可以拥有多个协程。 协程不是被操作系统内 阅读全文
posted @ 2020-03-24 00:42 NeoZy 阅读(354) 评论(0) 推荐(0)
摘要:学数据结构时就知道这个概念,一直没有研究过。 同样一个求阶乘的函数,首先是平时我们最熟悉的版本,也就是普通递归版本: 对于func(5)的递归调用如下: 然后是尾递归版本的: 调用图是这样的: 看起来,二者递归的栈都是五层嘛,有什么区别呢? 最大的区别是:对于第一种普通递归,每次函数的n*f(n-1 阅读全文
posted @ 2020-03-23 23:33 NeoZy 阅读(1361) 评论(0) 推荐(0)
摘要:本文代码在VS2019测试通过,不代表其他编译器也能通过。(比如我的Vscode用的是Mingw编译器,就无法使用该代码) 文件信息结构体_finddata_t: _findfirst函数: 利用_findfirst找到第一个文件, 返回一个文件句柄,可以作为其他函数的参数。并将文件名匹配由 _fi 阅读全文
posted @ 2020-03-23 21:29 NeoZy 阅读(1145) 评论(0) 推荐(0)
摘要:可以把非1的bool值按true输出,为0的bool值按false输出。 摘自官网: // modify boolalpha flag #include <iostream> // std::cout, std::boolalpha, std::noboolalpha int main () { b 阅读全文
posted @ 2020-03-22 14:46 NeoZy 阅读(386) 评论(0) 推荐(0)
摘要:题目: 有两个容量分别为 x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水。 你允许: 装满任意一个水壶清空任意一个水壶从一个水壶向另外一个水壶倒水,直到装满或者倒空示例 1: (From 阅读全文
posted @ 2020-03-22 12:15 NeoZy 阅读(180) 评论(0) 推荐(0)
摘要:Set、Map: 对于map、set来说如果是基本类型,默认从小到大。但如果是自定义类型或者非基本类型(比如vector这种),那么就需要自己重载相应的规则。 举例: 我知道的map重载从大到小的几种方法: 1、Lambda: auto cmp=[](int x,int y){return x>y; 阅读全文
posted @ 2020-03-21 22:14 NeoZy 阅读(1729) 评论(0) 推荐(0)
摘要:代码很简单,如下: int add(int a,int b) { return a + b; } int main() { int x = add(3, 7); return 0; } main函数第一行设置断点,调试并查看反汇编。(注意先push 7,再push3,这里可以很好地佐证函数参数是从右 阅读全文
posted @ 2020-03-21 16:02 NeoZy 阅读(823) 评论(0) 推荐(0)
摘要:concat可以拼接字段: 比如select concat(name,':',salary) from ..... 当然拼接的字段我们也可以起个别名: select concat(name,':',salary) as NameSalary from ..... string的空格处理: 链接:ht 阅读全文
posted @ 2020-03-21 00:20 NeoZy 阅读(175) 评论(0) 推荐(0)
摘要:C语言的这种str函数如果有两个字符串参数,一个目的,一个源头。都是第一个为char*,第二个const char*的,前者为目的字符串地址,后者是只读的。 strcpy: 第二个字符串复制到第一个字符串 strncpy: 复制第二个字符串的前n个字符过去 strcat: 将第二个字符串拼接到第一个 阅读全文
posted @ 2020-03-20 22:40 NeoZy 阅读(858) 评论(0) 推荐(0)
摘要:题目: 把字符串 s 看作是“abcdefghijklmnopqrstuvwxyz”的无限环绕字符串,所以 s 看起来是这样的:"...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....". 现在我们有了另一个字符串 p 。你需 阅读全文
posted @ 2020-03-20 13:07 NeoZy 阅读(247) 评论(0) 推荐(0)
摘要:用了这么久的sort,大概知道它是快排加一些其他排序组合起来的一个排序算法,今天就来捋清楚。 直接上图片: sort定义在stl_algo.h里,看起来只不过是对另一个函数的封装。 __sort函数也定义在stl_algo.h里: 可以看到它首先判断左右迭代器是否指代有效区间,如果不是有效区间就直接 阅读全文
posted @ 2020-03-18 23:25 NeoZy 阅读(501) 评论(0) 推荐(0)
摘要:学了这么久都不知道C语言有这个函数(其实是因为基本没写过C,除了学程序设计的时候。。) qsort 的函数原型是void __cdecl qsort ( void *base, size_t num, size_t width, int (__cdecl *comp)(const void *, c 阅读全文
posted @ 2020-03-18 22:44 NeoZy 阅读(268) 评论(0) 推荐(0)
摘要:题目: 矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。 如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。 给出两个矩形,判断它们是否重叠并返回结果。 示例 1: 输入:rec1 阅读全文
posted @ 2020-03-18 18:08 NeoZy 阅读(172) 评论(0) 推荐(0)
摘要:二叉树的前序递归、中序递归、后序递归不说了,是人都会写。 前序非递归: 前序是中-》左-》右,那么对于当前节点cur来说,我们要先把cur的值放入结果数组。再深入其左子树。左子树遍历完后,再深入其右子树。 那么显然再我们深入其左子树前,需要保存当前节点cur,因为之后还要遍历cur的右子树。 /** 阅读全文
posted @ 2020-03-18 15:52 NeoZy 阅读(272) 评论(0) 推荐(0)
摘要:首先我们都知道如果类里有虚函数(自己覆盖了/声明了新的虚函数或者继承了父类的虚函数都算),会在类的开头有一个虚函数表指针,所以一个空类如果有一个虚函数,那么sizeof该类等于4。 类的大小和内部数据有关系,和成员函数无关,函数都是放在代码段的,不包含在每个对象的实例中(要是每个实例里面都有一大堆函 阅读全文
posted @ 2020-03-18 13:39 NeoZy 阅读(477) 评论(0) 推荐(0)
摘要:头文件<regex> 先贴正则规则: 链接:https://www.cnblogs.com/hesse-summer/p/10875487.html \:\字符能够改变字符原本的含义 ^:^字符指示字符串的头,且要求字符串以字符开头,不占位。\^表示一个真正的^符号。 $:$字符指示字符串的尾,且要 阅读全文
posted @ 2020-03-18 00:06 NeoZy 阅读(325) 评论(0) 推荐(0)
摘要:题目: 在 "100 game" 这个游戏中,两名玩家轮流选择从 1 到 10 的任意整数,累计整数和,先使得累计整数和达到 100 的玩家,即为胜者。 如果我们将游戏规则改为 “玩家不能重复使用整数” 呢? 例如,两个玩家可以轮流从公共整数池中抽取从 1 到 15 的整数(不放回),直到累计整数和 阅读全文
posted @ 2020-03-17 15:52 NeoZy 阅读(295) 评论(0) 推荐(0)
摘要:转载:https://blog.csdn.net/yangyong0717/article/details/71636327 首先假如有A,B,C三个不同脚本,分别挂载在下面的假设条件下: 1.假设你在场景中新建了个GameObject(假设名字叫RootObject),在上面挂了个脚本C。2. 然 阅读全文
posted @ 2020-03-17 00:55 NeoZy 阅读(257) 评论(0) 推荐(0)
摘要:413题目: 如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。 例如,以下数列为等差数列: 1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。 1, 1, 2, 5, 7 数组 A 包含 N 个数,且索引从0开始。数组 A 阅读全文
posted @ 2020-03-16 20:50 NeoZy 阅读(296) 评论(0) 推荐(0)
摘要:题目: 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。 注意: 数组长度 n 满足以下条件: 1 ≤ n ≤ 1000 1 ≤ m ≤ min(50, n) 示例: 输入: nums = [7,2,5,10,8] 阅读全文
posted @ 2020-03-16 18:07 NeoZy 阅读(194) 评论(0) 推荐(0)
摘要:gcc/g++编译选项: -o 文件名 -E 只运行 C 预编译器。 -S 只激活预处理和编译,就是指把文件编译成为汇编代码。 -c 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 -include file 例子用法: gcc hello.c -include /root/pianop 阅读全文
posted @ 2020-03-16 00:37 NeoZy 阅读(372) 评论(0) 推荐(0)
摘要:题目: 解答: 每个串前用分隔符,分隔符指明数据串的长度。 当然实际中的IP分片是: 在IP首部有4个字节是用于分片的,如下图所示。前16位是IP数据报的标识,同一个数据报的各个分片的标识是一样的,目的端会根据这个标识来判断IP分片是否属于同一个IP数据报。中间3位是标志位,其中有1位用来表示是否有 阅读全文
posted @ 2020-03-14 23:22 NeoZy 阅读(328) 评论(0) 推荐(0)
摘要:题目: 一只青蛙想要过河。 假定河流被等分为 x 个单元格,并且在每一个单元格内都有可能放有一石子(也有可能没有)。 青蛙可以跳上石头,但是不可以跳入水中。 给定石子的位置列表(用单元格序号升序表示), 请判定青蛙能否成功过河(即能否在最后一步跳至最后一个石子上)。 开始时, 青蛙默认已站在第一个石 阅读全文
posted @ 2020-03-14 13:59 NeoZy 阅读(256) 评论(0) 推荐(0)
摘要:make_heap:对一个容器建堆(默认最大堆!) 调用方法:make_heap(iter1,iter2,<cmp>); 其中cmp为小于规则,不加就是默认最大堆。 cmp一般使用lambda表达式,比如: make_heap(data.begin(),data.end(),[](const int 阅读全文
posted @ 2020-03-13 16:18 NeoZy 阅读(2002) 评论(2) 推荐(0)
摘要:题目: 栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和 isEmpty。当栈为空时,peek 返回 -1。 示例1: 输入:["SortedStack", "pus 阅读全文
posted @ 2020-03-13 15:57 NeoZy 阅读(759) 评论(0) 推荐(0)
摘要:memcpy: void * memcpy ( void * destination, const void * source, size_t num ); 从source复制数据给dest,注意size_t是字节数,和类型无关。比如可以这样调用: int main() { int p[3] = { 阅读全文
posted @ 2020-03-11 23:36 NeoZy 阅读(543) 评论(0) 推荐(0)
摘要:ACID: A(Atomicity)原子性:事务中有多个操作,要么全部发生,要么全部不发生。 C(Consistency)一致性: Consistency ensures that a transaction can only bring the database from one valid st 阅读全文
posted @ 2020-03-11 23:10 NeoZy 阅读(208) 评论(0) 推荐(0)
摘要:如题,为什么free和delete(当然底层还是调用free)能够释放数组空间。 写个测试代码: #include <iostream> #define N 16 using namespace std; int main() { int* p = (int*) (malloc(sizeof(int 阅读全文
posted @ 2020-03-11 01:31 NeoZy 阅读(510) 评论(0) 推荐(0)
摘要:1.如果计算机是新连入局域网的,会先使用DHCP(动态主机配置协议)为该计算机分配ip地址。这一步结束后,我们的计算机有了自己的ip地址。 2.访问www.baidu.com。这是个域名,我们需要知道它的ip地址才能访问。使用DNS协议(dns缓存->本地dns服务器->权威dns服务器->根dns 阅读全文
posted @ 2020-03-11 00:33 NeoZy 阅读(945) 评论(0) 推荐(0)
摘要:常规的几个概念如:慢启动(指数增加),拥塞避免(线性增加),慢启动阈值(sstresh)不说了,可以看下其他博客。 说一下其他几个名词,感觉书上分的不是很清楚,事先声明下哈,都是我个人的理解,如果不对还望评论指出。 快速重传:即收到3个冗余ACK马上重新发送该数据包,而不是等待该数据包超时再重传。 阅读全文
posted @ 2020-03-10 23:34 NeoZy 阅读(392) 评论(0) 推荐(0)
摘要:题目: 链接:https://leetcode-cn.com/problems/number-of-connected-components-in-an-undirected-graph/ 给定编号从 0 到 n-1 的 n 个节点和一个无向边列表(每条边都是一对节点),请编写一个函数来计算无向图中 阅读全文
posted @ 2020-03-10 16:28 NeoZy 阅读(1663) 评论(0) 推荐(0)
摘要:题目: 链接:https://leetcode-cn.com/problems/binary-tree-vertical-order-traversal/ 给定一个二叉树,返回其结点 垂直方向(从上到下,逐列)遍历的值。 如果两个结点在同一行和列,那么顺序则为 从左到右。 示例 1: 输入: [3, 阅读全文
posted @ 2020-03-10 15:49 NeoZy 阅读(933) 评论(0) 推荐(0)
摘要:楼主FDU弱鸡,绩点不到3.0,记录一下春招过程。 3.9华为一面: 自我介绍 问我做过什么项目(大一大二欠的课太多,一直在补之前的课,没做过什么项目,就没继续问) 虚函数和纯虚函数(纯虚函数大概意思说出来了,但没说虚函数写法是=0,想不起来了,还好说完没细问) 全局变量和局部变量分别在内存的位置 阅读全文
posted @ 2020-03-09 20:04 NeoZy 阅读(1716) 评论(2) 推荐(0)
摘要:应用层协议: HTTP 使用TCP协议,默认端口80 http状态码: 1xx消息——请求已被服务器接收,继续处理 2xx成功——请求已成功被服务器接收、理解、并接受 3xx重定向——需要后续操作才能完成这一请求 4xx请求错误——请求含有词法错误或者无法被执行 5xx服务器错误——服务器在处理某个 阅读全文
posted @ 2020-03-09 01:38 NeoZy 阅读(163) 评论(0) 推荐(0)
摘要:引用折叠:创建引用的引用时(如模板参数、类型别名)会造成引用折叠,折叠规则如下:1.&+&->&&&+&->&&+&&->& 2.&&+&&->&& 3.左值(非引用)+&&(模板形参的)->&,实际上是:编译器会自己在模板形参类型前加&,这样就变成了:&+&&,依据前面的规则还是会折叠为&。 注意 阅读全文
posted @ 2020-03-07 23:55 NeoZy 阅读(2617) 评论(1) 推荐(0)
摘要:1.模板的参数列表里除了普通的typename T这样的类型参数之外,还可以定义非类型参数,其表示一个值而不是一个类型。并且这个非类型参数是一个常量值,可以用来指定数组大小。 例子: template <int a,int b> bool CmpStr(const char(&x) [a],cons 阅读全文
posted @ 2020-03-07 23:05 NeoZy 阅读(212) 评论(0) 推荐(0)
摘要:运行以下代码: void print(int x,int y,int z){ cout<<"&x= "<<&x<<endl; cout<<"&y= "<<&y<<endl; cout<<"&z= "<<&z<<endl; } int main() { print(1,1,1); getchar(); 阅读全文
posted @ 2020-03-07 15:17 NeoZy 阅读(1275) 评论(0) 推荐(0)
摘要:守护进程(daemon):在后台运行并且不受任何终端控制的进程。Unix操作系统有很多典型的守护进程(其数目根据需要或20—50不等),它们在后台运行,执行不同的管理任务。 写时赋值(copy-on-write):linux中开新进程一般都是先fork一个子进程(子进程和父进程的数据完全一致)出来, 阅读全文
posted @ 2020-03-07 14:34 NeoZy 阅读(163) 评论(0) 推荐(0)
摘要:先画个图: 再来一张: 然后是一个困扰我很久的问题:为什么多级页表省空间 现在我的理解是这样的:二级页表的系统中,程序的内存中存放到页表有:一级页表(这个是必存的,任何程序都要存),以及该程序实际占用页面对应的二级页表项(一般程序的大小就几MB,一般存几个二级页表就够了,因为一个二级页表可以指向2^ 阅读全文
posted @ 2020-03-07 13:58 NeoZy 阅读(2373) 评论(0) 推荐(0)
摘要:题目: 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 解答: 方法1: 暴力就完事了嗷 class Solution { public: vector<vector<int>> find 阅读全文
posted @ 2020-03-06 19:36 NeoZy 阅读(188) 评论(0) 推荐(0)
摘要:题目: 给定一个单词集合 (没有重复),找出其中所有的 单词方块 。 一个单词序列形成了一个有效的单词方块的意思是指从第 k 行和第 k 列 (0 ≤ k < max(行数, 列数)) 来看都是相同的字符串。 例如,单词序列 ["ball","area","lead","lady"] 形成了一个单词 阅读全文
posted @ 2020-03-06 19:04 NeoZy 阅读(318) 评论(0) 推荐(0)
摘要:要面试了,复习一下c++的语言细节,才发现自己差的还很多。 static int i1=1; static int i2=1; int i3; static int i4; int main() { static int i5=1; int i6=1; int i7; cout<<&i1<<" "< 阅读全文
posted @ 2020-03-06 13:54 NeoZy 阅读(1037) 评论(0) 推荐(0)
摘要:shared_ptr允许多个指针指向同一个对象,unique_ptr则“独占”所指向的对象。标准库还定义了一种名为weak_ptr的伴随类,它是一种弱引用,指向shared_ptr所管理的对象,这三种智能指针都定义在memory头文件中。 不可以用shared_ptr或者weak_ptr指向一个un 阅读全文
posted @ 2020-03-06 01:10 NeoZy 阅读(161) 评论(0) 推荐(0)
摘要:右值引用 :int &&p 左值引用:即普通引用 int& p 常量左值引用:const int& p 共同点:都是变量,都是引用 区别:左值引用只能绑左值,右值引用只能绑右值,但注意右值引用同样也是变量,是左值! 常量左值引用却是个奇葩,它可以算是一个“万能”的引用类型,它可以绑定非常量左值、常量 阅读全文
posted @ 2020-03-06 00:55 NeoZy 阅读(281) 评论(0) 推荐(0)
摘要:求先升序后降序的数组中的最大值: 明显是二分,然后惯性思维总考虑mid和left和right之间的关系来判断接下来去哪个区间。 实际应该比较mid和mid-1和mid+1的大小关系。 如果mid-1<mid<mid+1,说明最大值在mid+1右侧 图: 如果mid-1>mid>mid+1,说明最大值 阅读全文
posted @ 2020-03-06 00:00 NeoZy 阅读(155) 评论(0) 推荐(0)
摘要:题目: 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。 注意:字符串长度 和 k 不会超过 104。 示例 1: 输入: s = "ABAB", k = 2 输出: 4 解释: 用两个'A' 阅读全文
posted @ 2020-03-05 23:53 NeoZy 阅读(315) 评论(0) 推荐(0)
摘要:模板是范型编程的基础,所谓范型编程就是用独立与任何特定类型的方式编写代码所以简单地说,类是对象的抽象,而模板又是类的抽象,也就用模板能定义出具体类再理解深刻点在c++里,常说的多态一般分为两种:一种是运行时的多态,也就是虚函数体现的多态另一种是编译时的多态,也就是范型编程的多态,体现在参数的多态在作 阅读全文
posted @ 2020-03-04 02:15 NeoZy 阅读(1321) 评论(0) 推荐(0)
摘要:题目: 链接:https://leetcode-cn.com/problems/sentence-screen-fitting/ 给你一个 rows x cols 的屏幕和一个用 非空 的单词列表组成的句子,请你计算出给定句子可以在屏幕上完整显示的次数。 注意: 一个单词不能拆分成两行。 单词在句子 阅读全文
posted @ 2020-03-04 01:35 NeoZy 阅读(808) 评论(0) 推荐(0)
摘要:const只是声明变量类型/函数返回类型为常量,不能改动。 constexpr修饰变量/函数是显式告知编译器“我是常量,不要在多费功夫了,直接把我替换为常量加入汇编代码!”。 比如下面这样的函数或者变量都是这种情况: 1 constexpr int x=1; 2 int constexpr f(){ 阅读全文
posted @ 2020-03-03 17:47 NeoZy 阅读(656) 评论(0) 推荐(0)
摘要:C++中我们可以平时使用vector等容器时一般这样初始化:vector<int> p={1,2,3}; 其中{1,2,3}是一种叫initializer_list的类型,是C++11新出的 除了可以用来初始化容器, 还可以像python一样用: for x in [1,2,3]: print(x) 阅读全文
posted @ 2020-03-03 14:01 NeoZy 阅读(3690) 评论(0) 推荐(0)
摘要:题目: 链接:https://leetcode-cn.com/problems/find-k-pairs-with-smallest-sums/ 给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 n 阅读全文
posted @ 2020-03-02 10:42 NeoZy 阅读(524) 评论(0) 推荐(0)
摘要:题目: 链接:https://leetcode-cn.com/problems/range-addition/ 假设你有一个长度为 n 的数组,初始情况下所有的数字均为 0,你将会被给出 k​​​​​​​ 个更新的操作。 其中,每个操作会被表示为一个三元组:[startIndex, endIndex 阅读全文
posted @ 2020-03-02 02:05 NeoZy 阅读(303) 评论(0) 推荐(0)
摘要:题目: 给你一个非空的字符串 s 和一个整数 k,你要将这个字符串中的字母进行重新排列,使得重排后的字符串中相同字母的位置间隔距离至少为 k。 所有输入的字符串都由小写字母组成,如果找不到距离至少为 k 的重排结果,请返回一个空字符串 ""。 示例 1: 输入: s = "aabbcc", k = 阅读全文
posted @ 2020-03-01 15:18 NeoZy 阅读(3700) 评论(0) 推荐(0)