
c/c++笔面应用实战
文章平均质量分 55
自C++11起脱胎换骨,C++理论基础是面试的常考点。拥有深刻的理论认知,才能指导新版C++开发及webrtc等大型音视频项目中的实战。
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
等风来不如迎风去
AI领域初学者,AI+实时语音,AI+2/3D动画生成;AI+UE表演,AI+游戏NPC;音视频行业深耕多年,熟悉会议、直播、RTC,对在线教育、娱乐秀场等音视频端到端技术及系统架构有深入研究
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【c++】ifstream ofstream 文件读写 用于重建日志文件
摘要: std::ifstream和std::ofstream类定义在<fstream>头文件中,用于文件读写操作。该头文件自C++98以来一直是标准库的一部分,支持所有C++标准版本。使用时需在文件顶部添加#include <fstream>。典型应用包括:检查文件是否存在(通过std::ifstream)、删除已有文件(std::remove)以及创建新文件(std::ofstream)。示例代码展示了如何先检查日志文件存在性,删除旧文件后创建新文件,最后初始化日志系统。这种方法原创 2025-06-22 22:19:43 · 52 阅读 · 0 评论 -
【c++】类成员初始化顺序
C++类成员初始化顺序问题分析:成员变量的初始化顺序由类声明顺序决定,而非构造函数初始化列表的顺序。测试发现packetizer成员构建时ssrc尚未初始化,导致参数传递错误。根本原因是sender_ssrc_声明在h264Packetizer_之后。解决方法有两种:1)调整类声明顺序,使sender_ssrc_位于h264Packetizer_之前;2)使用临时变量先计算ssrc值再传递。关键在于确保依赖项先于被依赖项初始化,或在初始化列表中预先计算所需值。原创 2025-06-22 09:28:07 · 42 阅读 · 0 评论 -
【C++】编码传输:创建零拷贝帧对象4:shared_ptr转unique_ptr给到rtp打包
摘要:本文分析了使用std::make_unique创建对象时的常见问题。当需要从shared_ptr指向的对象创建新实例时,必须对指针进行解引用(*packet)才能正确调用拷贝/移动构造函数。文章提供了两种解决方案:直接使用解引用后的对象进行拷贝构造,或通过显式参数构造新对象。同时指出错误做法是将shared_ptr本身作为构造参数传入,因为目标类通常不包含接受shared_ptr的构造函数。原创 2025-06-21 12:36:18 · 49 阅读 · 0 评论 -
【C++】编码传输:创建零拷贝帧对象3: dll api转换内部的共享内存
本文探讨了在C++ API设计中如何安全高效地处理视频数据传输。建议在API边界使用原始指针传递数据,同时在内部转换为共享指针(std::shared_ptr)管理内存。文章对比了两种实现方式:一种是使用std::vector进行数据拷贝,虽然安全但存在性能开销;另一种更优方案是采用std::shared_ptr<uint8_t[]>管理缓冲区,仅需一次拷贝即可实现零拷贝传输,同时确保内存安全。这种设计既保持了API的简洁性,又通过智能指针自动管理内存生命周期,避免了内存泄漏和悬挂指针问题,特别原创 2025-06-21 12:32:39 · 43 阅读 · 0 评论 -
【C++】编码传输:创建零拷贝帧对象2:shared_ptr 复制(引用计数 +1)
摘要:当前C++视频传输方案通过shared_ptr管理帧数据内存,确保不会泄漏,但会因构造VideoDataPacket时拷贝数据产生额外开销。要实现真正的零拷贝,建议将VideoDataPacket内部存储改为共享指针,直接复用原始缓冲。这种改进既能保持内存安全,又可消除拷贝开销,提升大帧数据传输效率。现有方案适合小数据量场景,而优化方案更适合高频大数据传输需求。原创 2025-06-21 11:32:56 · 51 阅读 · 0 评论 -
【C++】编码传输:创建零拷贝帧对象1
摘要:零拷贝视频帧实现方案 本文探讨了基于ZLMediaKit的零拷贝视频帧实现方法。通过使用std::shared_ptr<uint8_t[]>管理帧数据缓冲区,仅在编码阶段进行一次数据拷贝,后续传递通过共享指针的引用计数机制确保数据安全。关键点包括:1)智能指针自动管理缓冲区生命周期;2)元数据字段采用值拷贝;3)避免引用局部变量导致的悬挂指针。建议采用值传递VideoFrame对象或使用智能指针包装帧对象,既保证线程安全又兼顾性能。实际分发时,每个模块会获得独立的帧拷贝,但底层数据仍保持共原创 2025-06-21 11:23:10 · 48 阅读 · 0 评论 -
【c++】exe找不到dll里的符号:error LNK2019: unresolved external symbol
error LNK2019: unresolved external symbol原创 2025-05-27 11:12:39 · 113 阅读 · 0 评论 -
【c++】成员函数被声明为 `const` 时
mutable原创 2025-05-24 21:57:40 · 146 阅读 · 0 评论 -
【c++】Fmt 库vs2022 v143的windows构建32位
cmake原创 2024-11-26 13:15:30 · 152 阅读 · 0 评论 -
【c++】C3490: ‘sentAtMs‘ cannot be modified because it is being accessed through a const object
适用场景这种设计特别适合以下情况:原始数据不希望被直接修改。需要在异步任务中使用变量的不同拷贝版本。提升代码可读性,便于维护和调试。这种方式是一种优雅的解决问题的思路,在 C++11/14 的代码中广泛应用。原创 2024-11-12 19:52:41 · 78 阅读 · 0 评论 -
【Fargo】1:基于libuv的udp收发程序
g++ UDPSender.cpp main_sender.cpp -o sender -luvg++ UDPReceiver.cpp main_receiver.cpp -o receiver -luv原创 2024-10-12 11:53:24 · 415 阅读 · 0 评论 -
【java】将Map的value类型定义为Object
Map原创 2024-09-06 11:37:44 · 366 阅读 · 0 评论 -
【c++】std list和std queue的区别
queue原创 2024-05-09 18:36:41 · 456 阅读 · 0 评论 -
【c++】mutable是一个关键字,用于指定一个类成员可以在一个const成员函数中被修改。
mutable原创 2024-04-30 14:29:04 · 119 阅读 · 0 评论 -
【c++】weak_ptr和观察者模式
c++原创 2024-04-25 20:11:06 · 225 阅读 · 0 评论 -
【c++】map的迭代器插入另一个map
c++迭代器原创 2024-04-25 19:51:39 · 207 阅读 · 0 评论 -
【c++20】学习笔记:priority_queue及实战
//https://en.cppreference.com/w/cpp/container/priority_queue原创 2024-04-18 16:13:08 · 260 阅读 · 0 评论 -
【C++20】学习笔记:在事件驱动使用携程
C++20原创 2024-04-18 15:25:54 · 393 阅读 · 0 评论 -
【libdc】基于queue的异步消息处理
DispatchQueue原创 2024-04-16 11:35:03 · 83 阅读 · 0 评论 -
【c++20】金山云liuguang引擎
liuguang原创 2024-04-04 16:08:57 · 615 阅读 · 0 评论 -
【小熊猫 ide】更新支持mingw 支持c++20
小熊猫 ide原创 2024-03-31 22:39:45 · 1218 阅读 · 0 评论 -
【c++20】CPP-20-STL-Cookbook 学习笔记
c++20原创 2024-03-29 16:47:33 · 380 阅读 · 0 评论 -
【c++】VS2022静态库断点 “The breakpoint will not currently be hit. “
No symbols have been loaded for this document.原创 2024-02-27 14:55:18 · 475 阅读 · 0 评论 -
【c++】跟webrtc学引用计数
ref count原创 2024-02-04 14:52:03 · 537 阅读 · 0 评论 -
【webrtc】跟webrtc学list遍历
std list原创 2024-02-04 11:56:52 · 471 阅读 · 0 评论 -
【c++】 const 类型的对象引用转非const
const原创 2023-12-06 12:39:28 · 650 阅读 · 0 评论 -
【c++20】‘std::allocator<char>::allocate‘: function does not take 2 arguments
std allocator原创 2023-11-09 11:25:02 · 267 阅读 · 0 评论 -
【c++】跟webrtc学容器:有序
std::priority_queue原创 2023-10-21 21:34:21 · 481 阅读 · 0 评论 -
【c++】跟webrtc学std array 3:buffer_id_to_frame_id_
buffer_id_to_frame_id_原创 2023-10-19 14:31:54 · 527 阅读 · 0 评论 -
【c++】跟webrtc学std array 2:TaskExecutorMap单例用法
std array原创 2023-10-19 14:14:29 · 666 阅读 · 0 评论 -
【c++】跟webrtc学std array 1: 混音的多维数组
webrtc原创 2023-10-19 11:00:06 · 532 阅读 · 0 评论 -
【c++】跟werbtc学容器:unordered_set
hash set原创 2023-10-17 14:36:09 · 137 阅读 · 0 评论 -
【c++】跟webrtc学状态改变
webrtc原创 2023-10-17 13:01:58 · 524 阅读 · 0 评论 -
【rtp】按照大端解析字节流
webrtc原创 2023-09-25 18:55:15 · 184 阅读 · 0 评论 -
【单例】单例Application构造实现
application原创 2023-09-21 18:26:23 · 99 阅读 · 0 评论 -
【libuv】与uvgrtrp的_SSIZE_T_定义不同
libuv原创 2023-09-20 17:16:47 · 151 阅读 · 0 评论 -
【异步任务】异步线程后台执行解压缩,finished后通知调用者
异步任务池原创 2023-09-19 11:40:00 · 160 阅读 · 0 评论 -
【sigslot】palacaze 例子:一组goup的slot 顺序执行
sigslot原创 2023-05-31 23:32:02 · 123 阅读 · 0 评论 -
【sigslot】palacaze 的连接断开、阻塞、作用域例子
sigslot原创 2023-05-31 23:28:26 · 110 阅读 · 0 评论 -
【sigslot】palacaze 基础例子
sigslot原创 2023-05-31 23:08:38 · 217 阅读 · 0 评论