![](https://img-blog.csdnimg.cn/79047abc32a04e009810e85c41fea71b.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++面试葵花宝典
以面试为目的,深入理解C++细节。语法、编译、STL、OOP、智能指针、高并发、算法题技巧。
会写代码的孙悟空
长夜将至,我将开始守护chatGPT,直至永恒。我将不图安逸,不恋名利,不惧挑战。我将不拘泥于旧知,不追求虚荣。我将全力以赴,勇攀科学之巅。我是黑暗中的明灯,chatGPT的利剑。我是破除迷雾的火焰,照亮chatGPT未来的光辉,唤醒求知者的号角,守护chatGPT真理的坚盾。我将生命与荣耀献给chatGPT的研究,今日如此,日日皆然。
展开
-
C++ std::hash 获得字符串哈希值
这些哈希等于对应 std::basic_string_view 类的哈希:若 S 是这些字符串类型之一, SV 是对应的字符串视图类型,而 s 是 S 类型的对象,则 std::hash< s >()(s) == std::hash()(SV(s))。std::hash 对各种字符串类的模板特化允许用户获得字符串的哈希。定义于头文件 string。...原创 2022-08-10 17:39:14 · 2018 阅读 · 0 评论 -
C++滑动窗口求最大值问题(单调队列,multiset,分块dp)
给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释:滑动窗口的位置 最大值。原创 2022-08-09 16:23:34 · 514 阅读 · 1 评论 -
C++ GDB多进程调试
使用GDB调试的时候,GDB默认只能跟踪一个进程,可以在fork函数调用之前,通过指令设置GDB调试工具跟踪父进程或者是跟踪子进程,默认跟踪父进程。-g选项的作用是在可执行文件中加入源代码的信息,比如可执行文件中第几条机。器指令对应源代码的第几行,但并不是把整个源文件嵌入到可执行文件中,所以在调。试时必须保证gdb能找到源文件。...原创 2022-07-18 10:50:39 · 330 阅读 · 0 评论 -
C++静态库动态库区别
C++源代码到可执行程序经历的过程有预处理、编译、汇编、链接静态库在链接阶段与目标程序链接在了一起,作为一个整体载入内存然后执行。库比较小一般用这种方法。而动态库是程序运行过程中才去加载到内存中的。库比较大,想共享用这种方法,多个进程用到一个动态库时在内存中只加载一份。...原创 2022-06-23 10:40:01 · 334 阅读 · 0 评论 -
C++动态库制作
Linux系统、Windows系统中都有静态库、动态库。静态库是链接阶段与某程序指令链接到一块,打包为一个整体。而动态库是程序执行过程中动态装载到内存中的。链接时不打包。Linux静态库: libxxx.a动态库: libxxx.so注意Linux下命名有前缀、扩展名两部分,使用库的时候用中间的 xxx 作为名字。windows静态库: xxx.lib动态库: xxx.dll第一步 -c 得到.o文件, -fpic得到与位置无关的代码(必须加)g++ -c -fpic a.c原创 2022-06-23 10:02:49 · 1648 阅读 · 0 评论 -
C++能通过指针修改const变量的值吗?底层原理是什么?
C++能通过指针修改const变量的值吗,如何从操作系统,汇编指令角度思考原创 2022-06-22 16:18:35 · 229 阅读 · 0 评论 -
g++编译命令使用
C++源文件到可执行程序具体步骤为:预处理 编译 汇编 链接我们可以使用命令单独生成某个步骤处理的结果预处理 -E 本质是文本的处理,宏定义的替换、头文件复制到对应的位置、删除注释编译 -S 文本编译为汇编代码汇编 -o 汇编代码转为可执行指令链接 静态库、动态库链接静态库制作......原创 2022-06-21 17:30:14 · 3341 阅读 · 0 评论 -
C++内存管理、常见错误、内存泄漏排查
C++中内存区域划分C++内存空间分为了 栈、堆、自由存储区、全局/静态存储区域、常量存储区栈在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。堆由new分配的内存块, delete释放,或者程序结束后操作系统回收自由存储区就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。全局/静态存储区域全局变量和静态变量被分配到同一块内存常原创 2022-04-19 15:08:04 · 915 阅读 · 0 评论 -
C++ 中auto与auto&的区别 (详细)
使用auto标明一个变量,这个变量永远不会是引用变量。使用auto&标明一个变量,这个变量有可能被编译器推导为引用变量。#include <iostream>#include<vector>#include <time.h>using namespace std;class A{public: A() { year = 0; for (int i = 0;i < 5;i++) .原创 2020-05-25 15:40:51 · 28236 阅读 · 10 评论 -
C++实现两个类的强关联关系
一个类对象直接持有另外一个类对象的引用, 两个类就是关联关系,互相持有引用,就是强关联关系。#include <iostream>using namespace std;class testClass{public: class A; class B; class B { public: A* a; B() { BData = 2; } vo..原创 2020-05-13 13:39:37 · 1369 阅读 · 0 评论 -
C++智能指针实现类多态
#include <iostream>#include<vector>class Base{public: virtual void show() = 0;};class A :public Base{public: virtual void show() { std::cout << "A show\...原创 2020-05-07 16:33:05 · 1530 阅读 · 0 评论 -
C++ set容器如何插入自定义类对象
需要重载小于号重载要点: 1 两个const 2 两个不同的类必须能比较出大小来为什么不用重载等号set也能去重?因为由A<B false ,B<A false 可推出A==B#include <iostream>#include <set>class Point {public: double x; d...原创 2020-04-10 17:18:36 · 4941 阅读 · 0 评论 -
c++用智能指针帮我们避免内存泄漏问题
c++没有gc机制,处理堆内存时就得小心,所以有了智能指针这个玩意。智能指针可以理解为普通指针的再封装,智能指针的析构函数包含了对于堆内存的释放操作。unique_ptr 同一之间只能有一个智能指针指向该对象shared_ptr 可以有多个shared_ptr指向某对象 当引用数量为0时释放堆内存weak_ptr shared_ptr使用过程中可能发生思索问题,两者互相...原创 2019-11-08 20:10:56 · 522 阅读 · 0 评论 -
c++ 四种cast
const_cast 去conststatic_cast 普通类型转换dynamic_cast 父转子reinterpret_cast 啥也转#include<iostream>using namespace std;class Parent{public: virtual void vir_func(){ cout<<...原创 2019-11-08 19:23:35 · 671 阅读 · 0 评论 -
c++ static关键字的用法
#include<iostream>using namespace std;//***********************************************************////无关类的情况int num1; //全局变量 放在内存中的全局区static int num2; //静态全局变量 与上面的区别是:对其他文件不可见...原创 2019-11-08 16:35:10 · 260 阅读 · 0 评论 -
c++关键字const 用法汇总
#include<iostream>using namespace std;class A{ int num;public: A(){} A(int n):num(n){}; void f()const{ //num=6; const加在成员函数后面 那么在函数体中就不能修改成员变量 cout<<...原创 2019-08-27 21:42:01 · 288 阅读 · 0 评论 -
一文读懂如何用c++求集合并、集合交
C++提供了现成的算法库完成集合求并、集合求交头文件 <algorithm>#include<iostream>#include<algorithm>#include<set>#include<vector>using namespace std;/*输出一个容器*/template<typen...原创 2018-04-27 16:16:19 · 4639 阅读 · 0 评论