- 博客(16)
- 收藏
- 关注
原创 C/C++ 面试基础
使用new操作符申请内存分配时无须指定内存块的大小,而malloc则需要显式地指出所需内存的尺寸。new/delete会调用对象的构造函数/析构函数以完成对象的构造/析构。而malloc则不会。函数指针是指向函数的指针变量。它可以用于存储函数的地址,允许在运行时动态选择要调用的函数。new操作符从自由存储区上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。3. 什么是函数指针,如何定义和使用场景。2. new和malloc的区别。基本变量类型所占大小。
2024-08-13 21:24:33 166
原创 C++虚函数
关于C++虚函数,对某些细节的理解不深入,可能导致我们的程序无法按预期结果运行,或是表明我们对其基本原理理解不够透彻。本文详细解答以下几个问题:实现多态,基类函数忘记写virtual会怎么样?虚函数的默认参数可以重载吗?纯虚函数真的不能有实现吗?析构函数可以是纯虚函数吗?
2024-07-17 11:16:46 858
原创 C++ weak_ptr的应用场景有哪些?
而std::weak_ptr不会增加对象的引用计数,因此,当缓存中的对象没有被其他地方引用时,std::weak_ptr会自动失效,从而导致缓存中的对象被销毁。当对应id的Widget对象已经被缓存时,cache[id].lock()会返回一个指向Widget对象的std::shared_ptr,否则cache[id].lock()会返回一个空的std::shared_ptr,此时,我们就需要重新加载Widget对象,并将其缓存起来,这一步会由std::shared_ptr构造std::weak_ptr。
2024-07-16 16:45:47 832
原创 C++ 观察者模式 思想理解与代码实现
观察者模式是一种设计模式,它定义了对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。在C++中,这个模式允许被观察者(Subject)以一种轻松的方式管理其观察者(Observers)的列表,并在状态改变时通知它们。
2024-07-16 13:56:50 833
原创 C++ : shared_ptr是线程安全的吗
这里我们讨论对shared_ptr进行拷贝的情况,由于此操作读写的是引用计数,而引用计数的更新是原子操作,因此这种情况是线程安全的。对此问题,我们需要从三个并发场景进行考虑,拷贝shared_ptr的安全性、对shared_ptr赋值的安全性和读写shared_ptr指向的内存区域的安全性。下面这个例子,两个线程同时对同一个shared_ptr指向内存的值进行自增操作,最终的结果不是我们期望的20000。shared_ptr本身不是一个线程安全的STL,因此并发读写对应内存区域是不安全的。
2024-07-15 19:58:04 330
原创 C++网络编程之多线程并发
在多线程版的服务器端程序中,多个线程共用同一个地址空间,有些数据是共享的,有些数据的独占的,下面来分析一些其中的一些细节。回收子线程资源:由于回收需要调用阻塞函数,这样就会影响accept(),直接做线程分离即可。负责通信,基于主线程建立新连接之后得到的文件描述符,和对应的客户端完成数据的接收和发送。多线程中分为两大类:主线程(父线程)和子线程,他们分别处理服务端的监听流程和通信流程。创建子线程:建立一个新的连接,就创建一个新的子进程,让这个子进程和对应的客户端通信。
2024-05-14 16:34:12 446 1
原创 C/C++ 语言练习之手撕栈
include//栈类private:int* stk;//表示栈数组//栈顶位置//栈的大小public:~Stack();int pop();
2024-05-10 10:51:27 174
原创 orb_slam3:error: ‘decay_t’ is not a member of ‘std
error: ‘decay_t’ is not a member of ‘std
2022-11-25 21:06:52 670 1
原创 视觉SLAM十四讲编译ch6踩坑记
error: ‘FixedArray’ {aka ‘class ceres::internal::FixedArray’} has no member named ‘fill’
2022-11-23 21:37:07 244 1
原创 Detnet: A Backbone network for Object Detection
一个专门为目标检测设计的骨干网络主要贡献:1.分析了分类网络直接用于目标检测的弊端。2.提出了新的骨干网络Detnet3.在MSCOCO数据集上实现了当前最先进的结果。动力:更深层的的Conv会导致边界框的模糊,从而导致不能精确的回归出目标框。另外large stride 还会丢失小目标。特性:保留了高分辨率的特征,同时保持了大的感受野。两个挑战:1.保持空间信息将花费额外的计算量和内存。2.减少下采样有害于图像的分类和语义分割。详细设计:论文采用ResNet-50作为baseli
2020-12-31 16:43:26 139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人