logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

c++左值与右值(自写)

/不加move,触发移动构造,深拷贝,两个都是"Hello",如果字符串特别长,拷贝会浪费很多资源。右值引用,b是对右值20的引用,实际上这个b在内部也是一个指针,相当于一个指针指向了这个20,只不过这个20没有”家“,没有地址。右值:通常没有地址,存储在寄存器或临时内存中(如果是亡值(左值使用std::move变为右值),可能有地址)目的是:让这个c在传递参数或者赋值的时候,触发移动构造,避免深

#c++#数据结构#开发语言
C++虚函数机制详解

特性说明虚表位置编译期生成,存储在只读数据段虚表指针每个对象实例中都有一个,指向对应的虚表无虚函数没有虚表指针,对象大小较小vptr大小与系统指针大小相同(32位4字节,64位8字节)绑定时机在构造/析构函数开始时自动设置构造顺序基类→派生类,vptr随之变化析构顺序派生类→基类,vptr随之变化。

#c++#开发语言#算法
C++内存序详解

flag.load(std::memory_order_acquire)) { // 3. 获取标志(保证4在3之后)int r1 = y.load(std::memory_order_relaxed);// 可能看到y=1但x=0。// 1. 准备数据。// r1 == 1 (y已设置) 但 r2 == 0 (x还未设置)// 可能的顺序:1→2→3→4 或 1→3→2→4 等。// 必须对其他

#c++#java#开发语言
c++调用客户端库与kafka交互

C++可以通过一些优秀的开源库与Kafka进行交互,其中最核心和常用的是librdkafka。

#c++#kafka#交互
C++常见排序算法详解

面试金句:在C++排序算法选择中,没有"最好"的算法,只有"最适合"当前场景的算法。对于大多数C++应用场景,标准库的std::sort是最佳选择,它结合了快速排序、堆排序和插入排序的优势,提供了最优的平均性能。在需要自己实现排序算法时,应根据数据规模、数据特性、内存限制等因素进行选择。"排序算法是计算机科学的基石,但没有银弹。理解各种排序算法的原理、优缺点和适用场景,才能在实际项目中做出正确的技

#排序算法#c++#算法
C++面试题:Linux常用指令详解

是管理大型项目的必备工具。掌握这些命令不仅能帮助你快速解决问题,还能展示你对Linux环境的熟悉程度,这对于C++开发岗位尤为重要。在实际工作中,我习惯使用。"在C++开发中,熟练使用Linux命令是必不可少的技能。),这些命令能极大提高开发效率。特别是对于C++开发者,确保没有内存泄漏,这些工具大大提高了我的工作效率。是调试内存问题的利器,

#c++#linux#chrome
C++场景题:避免两把锁同时获取的死锁问题

方法优点缺点std::lock简洁、安全、标准库提供需要C++11及以上给锁编号理解原理、可手动实现代码稍复杂,需要手动处理顺序超时获取锁避免永久等待可能需要额外的逻辑处理超时情况在C++面试中,正确回答这个问题,特别是提到std::lock和给锁编号的策略,能展示你对多线程编程和死锁问题的深入理解。

#c++#开发语言
C++面试题:结构体内存对齐

问题答案原因对齐模数4时占用内存12字节按默认4字节对齐,需填充最小占用内存8字节通过调整成员顺序(int → short → char)如何修改对齐模数alignas(1)通过编译器指令或C++11特性为什么不能设为1或21:导致未对齐访问,性能下降;2:无法满足int 4字节对齐要求CPU优化基于对齐内存关键点:内存对齐是CPU和编译器共同决定的,不是程序员随意可以修改的。

#c++#java#算法
Linux里面的文件描述符和windows里面的句柄

Linux 文件描述符 = Windows 句柄它们是不同操作系统里,同一个概念的两种名字都是资源标识符都代表打开的文件 / 管道 /socket/ 设备都用来对资源进行读写控制一个用 int,一个用 HANDLE,功能完全等价你现在已经彻底打通 Windows/Linux 进程间通信的底层逻辑了!

#linux#运维#服务器
git还原操作

强制还原代码到某个状态,不可恢复,危险操作。git pull同步远程最新代码到本地,安全常用。下面是一些同步最新远程分支代码。

#git
    共 29 条
  • 1
  • 2
  • 3
  • 请选择