- 博客(87)
- 收藏
- 关注
原创 【Linux】文件描述符1
fclose(fp);return 0;执行结果:注意这里的打开文件的路径和文件名,默认在当前路径下新建一个文件。那么这里当前路径是什么呢?其实是进程的当前路径cwd当一个进程运行起来的时候,每个进程都会记录自己当前所处的路径如上图输出重定向。
2025-04-05 18:03:53
785
原创 【C++】C++11<包装器没写>
我们没有权限去访问。对于右值引用的移动拷贝,实际上我们一般只将其用于自定义类型中,尤其是深拷贝的场景,比如vector<vecor>这种拷贝代价极大的场景,而对于内置类型,对其使用右值引用的移动拷贝其实意义并不是很大,或者说没有任何意义。尽管 j 是一个右值引用类型的变量,但 j 本身是一个左值,因为它是一个命名变量,可以被赋值和取址。这样的,原来的const左值引用,虽然可以引用右值,但是由于const,导致我们无法直接利用这个将亡值的资源,我们只能眼睁睁看着这个将亡值自己消亡,却无法直接拿走他的资源。
2025-04-05 18:01:45
1109
原创 floodfill+DFS(1)
法1:先从边界往内处理,将不可被围绕的地方标记;剩下的分为可被围绕部分以及围绕点,将可被围绕地方变成围绕点;再恢复标记点成不可围绕标记。法二:每个 需要处理点 在四个方向上进行验证。该方法没有上一种方法简洁,故不做深究。
2024-09-16 11:09:06
310
原创 找出所有子集异或和的和 &&全排列2
的,但是这样需要自定义比较方法,代码长度会大量增加,所以直接用迭代器找吧。不过具体示例方法有个标准代码,感兴趣可以看看;的代码,再在添加的时候检查一下是否存在该排列即可。(全排列的算法思想在前面博文已做说明)以上两种代码的本质没有任何区别,在算法角度来说,没有进行剪枝处理,所以运行时间较长。解释:做本题没思路的话,强烈建议看本专栏上一篇博文。解释:最初的检查方法是定义一个。解法二:进行剪枝操作。
2024-08-25 23:27:49
389
原创 算法3:二分查找(上)
上面的方法时间复杂度为O(N),当所有数都是目标值的时候,将会遍历整个数组,当然快的原因就是这算是经过logN级算法优化的;复用上次的代码,先找到一个目标值的下标,在朝两边扩散即可。侧重:不一定需要数组有序,重点在于规律。特点:容易写出死循环。
2024-08-10 13:19:52
294
原创 【Linux】动静态库
此外动态链接被使用时,除了在编译时需要和静态库一样告诉编译器库地址,更要在程序运行时告诉生成的可执行程序其地址,那为什么系统官方库不需要告诉呢,其实不然,都是要告诉的,不过系统一般将官方库采用环境变量法,会默认自己配置好;回想链接操作是在告诉编译器动态库的位置,但我们知道动态库在被链接的时候只是在程序占了个位置,本身内容并没有被加入到可执行程序中,需要程序运行的时候再去自己找该部分内容,需要告诉程序你的库在哪里,也可以把你的库放入操作系统仿官方库的位置(不建议,会污染官方库),为地址空间的地址;
2024-05-01 21:40:42
1289
原创 【C++】类型转换
原因:编译器优化,它对const变量认为不会变,故而直接加载到了寄存器(有的编译器直接用宏那种处理方式直接替换,如vs),读的时候它会去寄存器去取(即使a的值在内存中已被修改);通过监视发现,明明end变成-1,但循环仍会进去,这里其实就是比较的时候发生了隐式类型转换,比较的时候end由int变为unsigned int;此时C++后来在这里做了一些新的方法(旧的不能改)------四种类型转换,接着往下看…可见C语言的写法也会将切片的偏移量在向回转的时候,跳回去且不受虚函数限制;
2024-04-27 12:16:57
627
原创 【C++】抽象类 与 C++
若子类没有实现纯虚函数,则子类成为抽象类。. 派生类必须实现纯虚函数的具体功能。. 纯虚函数被实现后成为虚函数。. 抽象类只能做基类被继承。
2024-04-25 20:36:26
249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人