- 博客(584)
- 资源 (6)
- 收藏
- 关注
原创 c++使用regex报错regex_error
编译时无报错,运行时抛异常regex_errorcheck后发现,gcc版本4.9以上才能使用std::regex 而我们一般gcc版本是4.8.5 所以这里不采用std::regex,gcc版本升级不现实,可采取的方案有两个:1、使用boost::regex2、使用inet_pton判断ip。
2023-03-25 04:31:09
1336
原创 error: non-member function ‘XXX::IsValid(const T&)’ cannot have cv-qualifier
然后,我们定义了一个名为 IsValid 的全局函数,它接受一个对象作为参数,并将该对象传递给 Validator 类的构造函数。要解决这个错误,你需要将 IsValid 函数定义为一个成员函数或者一个全局函数,而不是一个非成员函数。如果你想将 IsValid 定义为一个成员函数,那么你需要将它添加到一个类中,并将需要检查的对象作为该类的成员变量。如果你不想将 IsValid 定义为一个成员函数,那么你可以将它定义为一个全局函数,并将需要检查的对象作为参数传递给它。
2023-03-25 04:03:49
385
原创 返回引用与返回值与返回std::move(obj)
需要注意的是,返回引用也有一些潜在的问题,比如返回了一个指向已经被销毁的对象的引用,或者返回了一个指向私有成员的引用等。因此,在使用返回引用时需要特别小心,确保返回的引用是有效的、安全的,并且不会对对象的状态造成任何影响。但是,返回引用需要确保返回的引用是有效的、安全的,并且不会对对象的状态造成任何影响,否则可能会导致程序崩溃或者产生不可预期的结果。因此,如果你需要返回一个对象的引用,并且该对象的生命周期与函数的生命周期相同,那么返回引用可能是更优雅的方式。
2023-03-25 03:33:12
501
原创 C++实现读写分离的双缓冲buffer
读写分离的双缓冲buffer有以下好处:1. 提高了并发读写的效率:在多线程环境下,读写操作是相互竞争的,读写分离的双缓冲buffer可以有效地减少读写之间的竞争,提高并发读写的效率。2. 减少了数据的拷贝:双缓冲buffer可以将数据从写缓冲区直接拷贝到读缓冲区,避免了中间数据拷贝的过程,提高了数据读写的效率。3. 提高了数据的安全性:双缓冲buffer可以避免读写操作的交叉,从而保证了数据的安全性。4. 提高了系统的稳定性:双缓冲buffer可以避免读写操作的阻塞,从而提高了系统的稳定性和可靠性
2023-03-22 23:20:48
3330
原创 c++用vector实现定长队列
我们可以用queue或vector实现定长队列,但是如果我们有遍历定长队列的需求的话,使用queue不是一个好的选择,因为queue本身不支持。这里分别提供queue和vector的实现
2023-03-22 23:06:19
1639
原创 C++使用rapidjson进行类的序列化与反序列化
C++中可以使用第三方库来实现将类序列化成JSON文件,以及读取JSON文件内容反序列化为类对象。使用的话也比较简单,拉下代码,然后将rapidjson-master/include/rapidjson目录拉到自己文件目录下,然后在编译参数上加上即可。
2023-03-22 22:54:16
1080
原创 c++ 常见宏、模板用法【1】
记录几个常见的好用的宏和模板编程技巧的示例,它们可以提高代码的可读性、可维护性和灵活性,为开发人员提供了更多的选择和工具来处理复杂的编程问题。
2023-03-12 00:20:44
637
原创 C++预处理连接
C++预处理连接(Preprocessor Concatenation)是一种宏定义技巧,用于将两个或多个符号(如变量、字符串等)连接成一个符号。这种技巧可以帮助程序员编写更加灵活和可维护的代码,尤其是在宏定义中使用较为常见。
2023-03-11 22:49:14
1449
3
原创 python sqlalchemy 动态修改__tablename__
请注意,动态更改表名可能会影响到您的应用程序的正确性和可维护性。因此,请考虑清楚是否真正需要这样做,以及如何规划数据库模式的变化。这是因为ORM框架本身会自动为每个数据模型类创建一个对应的Table对象,并将其存储在该类的。属性直接更新此对象的名称,从而实现动态更改表名的目的。然后,在必要时,我们可以通过访问模型类的。在这个例子中,我们首先定义了一个名为。然后通过函数返回class对象。属性来动态地更改表名。的数据模型,并将其与。
2023-03-09 10:57:18
847
原创 【Pysql】session.bulk_save_objects()提高批量插入效率
注意,这里并没有调用 session.add() 方法来添加单个对象,而是直接使用了 bulk_save_objects() 方法插入了整个列表。调用 session.bulk_save_objects(objs) 方法,其中 objs 是要插入的对象列表。方法用于将一个对象列表批量保存到数据库中,可以提高插入数据的效率。调用 session.commit() 方法提交事务,将数据保存到数据库中。创建需要插入的对象列表,每个对象都必须是该 ORM 映射类的实例。
2023-03-07 17:23:54
928
原创 【ETCD学习笔记】利用etcd动态更新成员属性(配置下发)
假设我们有个程序要实时显示某个数据的动态变化,metadata存在mysql或其他数据库中;比较挫的方法是我们开一个定时器,不断地去探测数据是否有变化,这明显会生成很多无谓的请求,也对增加对于数据库的压力。最好的办法是让数据库自己在有数据变化的时候将这个变化反馈给我们的程序。显然mysql并没有这个机制,而etcd是有的。下面讲解利用watch机制实现成员属性的动态更新
2023-02-19 23:12:49
462
原创 【Python】process使用
1、apply_async2、Manager3、Pool进程池4、queue资源共享5、Pipe6、joinableQueue7、Value_Array进程资源共享
2023-02-18 00:58:30
215
原创 【Python】thread使用
1、Condition条件变量使用2、event通信3、Semaphore信号量使用4、setDaemon设置守护线程5、threadPool_map使用6、threadPool使用7、threadingTimer
2023-02-18 00:57:12
619
原创 【Python】进程、线程、协程爬虫性能比较
0、协程优缺点总结优点缺点Py协程基础1、svr api 用于测试2、依赖gevent的协程使用3、依赖asyncio的协程使用4、demo代码单进程多协程单进程多线程多进程多协程5、结果统计(取三次平均)
2023-02-15 21:32:59
1645
转载 ModuleNotFoundError: No module named ‘_ctypes‘报错解决
2、关于ctypes的报错问题解决。1、python3的安装与卸载。安装库后,重新编译python。先删除现有的python3。
2022-11-16 11:01:01
973
原创 高性能随机数:mt19937、uniform_int_distribution使用
高性能随机数:mt19937、uniform_int_distribution使用。
2022-08-27 16:50:04
342
原创 API设计笔记:pimpl技巧
pointer to implementation:指向实现的指针,使用该技巧可以避免在头文件暴露私有细节,可以促进API接口和实现保持完全分离。
2022-07-30 21:32:18
406
原创 流媒体技术优化
流媒体协议的选择与分发体系架构的设计对优化起着关键作用。HLS和DASH协议在点播和OTT直播服务中已逐渐占据主流,其思想主要是将视频转为不同码率并切为较小的片段,将流媒体分发从服务器推送转向客户端以HTTP下载方式获取,在此情境下,客户端下载策略是技术优化的重点,主要集中的方面:早先视频服务的下载策略多由工程师凭经验设置,基于IF…ELSE…构造逻辑,但随着各家公司工程水平的提高,许多团队开始使用较复杂的算法作为下载策略,以争取QOS上出色的表现。当前通用的做法是将策略组件化,且针对不同平台和场景使用不同
2022-07-01 20:49:57
1242
原创 Qos(Quality of Service)
QOS(即Quality of Service,服务质量)主要指网络环境下服务满足用户的程度,在视频服务的语境下也可认为是Quality of Streaming,即流媒体服务的质量。通常,QOS可以由一系列指标表达,如传输的速度、响应时间、发送顺序、正确率等。就视频服务来说,QOS由多项约定俗成的技术指标构成,包括播放成功率、错误率、Re-buffer(卡顿)次数和时间、起始时间、快进响应时间、视频码率、延迟等。通行的QOS指标大致可分为两类:一类用于衡量用户可在多大概率上得到服务,如播放成功率和错误率;
2022-06-27 15:55:48
1879
原创 流媒体协议初探(MPEG2-TS、RTSP、RTP、RTCP、SDP、RTMP、HLS、HDS、HSS、MPEG-DASH)
流媒体技术需要解决的问题:1.允许客户端在不下载完整文件的时候即可以开始播放视频;2.允许客户端从完整内容的任何位置开始播放(不包括视频直播);3.针对视频直播,允许客户端从任意时间开始观看频道内容;4.允许在客户的带宽条件和客户端的硬件条件下播放;5.提供相对平稳的传输速度,以便用户基本流畅地完成播放。并伴随两个衍生技术:1.支持CDN传输,以提供服务扩展能力和较好的用户访问质量。2.支持视频内容的加密,避免版权内容被人依靠复制传播牟利设计流媒体网络协议需要注意的问题:1、协议应对传输的音视频格式进行规约
2022-06-26 23:19:13
4780
原创 System Design笔记:在线售票系统设计
电影票预订系统为其客户提供了在线购买影院座位的能力。Eticketing系统允许客户浏览当前正在播放的电影并预订座位,随时随地。功能要求:1、系统需要高度并发。在任何特定时间点,同一座位都会有多个预订请求。服务应该优雅而公平地处理这一问题。2、这项服务的核心是订票,即金融交易。这意味着系统应该是安全的,并且数据库符合ACID。1。为简单起见,假设我们的服务不需要任何用户身份验证。2、系统不处理部分客票订单。要么用户得到了他们想要的所有门票,要么什么也得不到。3、公平是制度的强制性要求。4、为了防止系统滥用,
2022-06-13 23:35:04
2341
原创 swap释放vector内存
int main() { vector<int> vec; for (int i = 0; i < 1000; i++) { vec.emplace_back(i); } cout << "capacity:" << vec.capacity() << " size:" << vec.size() << endl; vec.clear(); cout <<
2022-05-29 13:05:06
3639
2
原创 c++常见的10个类&对象问题
1、对象的浅复制2、构造函数中的操作符重载3、拷贝构造函数不能模板化4、析构函数未捕获异常导致coredump5、构造函数抛出异常6、基类析构函数非虚导致内存泄漏7、删除void*指针引发内存泄露8、成员函数尾部缺失const9、使用memset初始化class10、对象向下转换失败
2022-05-28 16:51:23
756
原创 c/c++常见类型转换错误
文章目录char转int 高位符号扩展有符号int与无符号int比较关于一个bit的位域变量的取值范围临时变量溢出size_t死循环char转int 高位符号扩展int main() { char a = 0x9A; int util; util = (int)a; cout << a << endl; cout << util << endl; if (util > 0) { st.
2022-05-27 14:40:41
3845
原创 对于线程并发模型与事件并发模型的思考
这里将以对话的形式进行:A:普通的线程是可以被其他线程中断掉的,而基于select、epoll的事件处理函数实际上是不可以被其他事件(线程)中断的。我这个理解对吗?B:图片里的应该是对是否可以并行,多路复用的说法,传统的io操作,可以在主进程里串行等待执行完再处理下面的逻辑,但逻辑上没有强相关的情况,可以并行去执行各种io(用户态),而主进程或其他子线程可以继续做其他事传统的io线程,主进程中是可以中断的,知道线程id,去中断就可以而select, epoll 主要是为了实现多路复用吧,配
2022-05-22 21:25:15
419
原创 关于并发概念的一些笔记
1、基于锁的并发数据结构1、并发计数器2、懒惰计数器3、并发链表4、并发队列5、并发散列表总结2、条件变量使用(POSIX)生产者/消费者 (有界缓冲区问题)覆盖条件扩展3、信号量使用二值信号量(锁)0值信号量(条件变量)生产者消费者问题读写锁哲学家就餐问题使用锁+条件变量实现信号量扩展4、并发问题总结1、预防循环等待2、使用非抢占锁3、完全避免互斥,使用CAS4、调度避免死锁5、检测死锁并恢复5、事件并发时间并发与线程并发的区别状态管理问题缺点
2022-05-22 21:19:31
455
原创 实时语音通讯丢包补偿技术
文章目录基于发送端丢包补偿技术原理与媒体无关的前向差错纠正媒体相关前向差错纠正交织技术基于接受端丢包补偿技术基于插入方法基于插值方法基于重构的方法应用建议非交互式交互式拓展阅读参考丢包补偿技术可以分为两类:基于发送端补偿、基于接受端补偿基于发送端补偿:前向差错纠正、交织和重传技术基于接受端补偿:错误隐蔽算法基于发送端丢包补偿技术原理主动:主动重传被动:被动通道编码前向差错纠正技术(FEC)与媒体无关的方法利用音频属性的媒体相关方法基于交织的技术与媒体无关的前向差错纠.
2022-05-08 19:20:22
779
2
原创 视频编解码基础
文章目录前戏编解码技术流程主流视频编码标准视频传输面临的问题视频传输差错控制视频传输Qos质量保证参数人类视觉系统HVS 以及相应编码措施正餐编码层次与码流结构PB帧编码IBBP序列编码结构图像编码结构条带编码结构宏块编码结构块编码结构预测技术码率控制实例H264前戏编解码技术流程1、预测:去除空间冗余、时间冗余;分为帧内预测、帧间预测2、变换:从时域变换到频域,去除相邻数据之间的相关性,去除空间冗余,分为:DCT余弦变换、小波变换3、量化:去除视觉冗余,通过降低图像质量提高压缩比4.
2022-05-05 13:27:22
2231
原创 后台系统可扩展性学习笔记
整理了一下笔记目录,将以前学习的一些知识串联起来了,比如cdn、负载均衡、中间件,以前只是各自了解了一点,现在大概理清了后台系统设计中他们各自的作用。后台系统可扩展性学习笔记(一)概要后台系统可扩展性学习笔记(二)权衡取舍后台系统可扩展性学习笔记(三)DNS机制原理后台系统可扩展性学习笔记(四)CDN机制原理后台系统可扩展性学习笔记(五)负载均衡后台系统可扩展性学习笔记(六)反向代理后台系统可扩展性学习笔记(七)Service Discovery与微服务后台系统可扩展性学习笔记(八)Ser
2022-04-14 15:47:29
2780
机器学习——正则化.pdf
2020-03-28
机器学习——多变量线性回归.pdf
2020-03-28
机器学习——单变量线性回归.pdf
2020-03-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅