本篇所有算法源码均已同步收录 GitHub 仓库,欢迎点个小⭐️:https://github.com/rongweihe/CPPNotes/tree/master/STL-source-code-notesSTL 算法博大精深,涵盖范围之广,其算法之大观,细节之深入,泛型思维之于字里行间,每每阅读
程序喵大人 关注Ta
此用户很懒什么也没留下
一、概述在 C/C++ 中,内存管理是一个非常棘手的问题,我们在编写一个程序的时候几乎不可避免的要遇到内存的分配逻辑,这时候随之而来的有这样一些问题:是否有足够的内存可供分配?分配失败了怎么办? 如何管理自身的内存使用情况? 等等一系列问题。在一个高可用的软件中,如果我们仅仅单纯的向操作系统去申请内
众所周知C++关于类型转换引入了四种方式:static_castconst_castdynamic_castreinterpret_cast为什么要引入这几种类型转换,它与C语言中的强制类型转换有什么区别?这四种类型转换分别应用在什么场景?C++为什么要引入这几种强制类型转换?我们都知道C++完全兼
老兵精讲:C++性能优化
前言性能优化不管是从方法论,还是从实践上都有很多东西。本文从 C++ 语本身入手,介绍了一些性能优化的方法,希望能做到简洁实用。实例1在开始本文的内容之前,让我们看段小程序:// 获取一个整数对应10近制的位数uint32_t digits10_v1(uint64_t v) { uint32_
网上经常看到有人说,不建议使用cout,而应该更多使用printf,下面说说我的看法!个人看法是两个都不建议用。下面说下我的理由:cout方式效率低:每次cout << endl="">cout方式线程不安全:std::cout <<>"Hello " <<>"World ";上面代码其实等同于:s
看一些C++项目时,发现有些函数传递的参数类型是const char*,我在想,为什么一个C++项目要用char*指针,用string会不会更好?这篇文章就简单分析一下,函数参数使用string还是const char*,哪个更合适?两种方式的函数声明如下:void func(const char*
大家应该都知道C++17引入了variant,这篇文章我们来研究下它究竟有啥用。本期目录 variant是什么? 为什么要引入variant? 如何确定variant中当前存放的数据类型? variant为什么要搭配monostate? 如何用variant实现多态?variant这货类似于unio
众所周知,程序员是一个需要不断学习的职业,而幸运的是,在这个互联网时代,知识就在那里,等着我们去获取。作为一个 收藏从未停止,学习从未开始 的博主 :(秉承着好东西不能独享的态度,把收藏的学习网站整理分享出来。原文链接:https://mp.weixin.qq.com/s/LBsw9KatMl6TQ
转自:Guancheng (G.C.)在并行程序中,锁的使用会主要会引发两类难题:一类是诸如死锁、活锁等引起的多线程Bug;另一类是由锁竞争引起的性能瓶颈。本文将介绍并行编程中因为锁引发的这两类难题及其解决方案。1、用锁来防止数据竞跑在进行并行编程时,我们常常需要使用锁来保护共享变量,以防止多个线程
背景:本人主要在做C++ SDK的开发,需要给到业务端去集成,在集成的过程中可能会出现某些功能性bug,即没有得到想要的结果。那怎么调试?分析:这种问题其实调试起来稍微有点困难,它不像crash,当发生crash时还能拿到堆栈信息去分析,然而功能性bug没有crash,也就没法捕捉对应到当时的堆栈信
- 1
- 2
- 3