首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
CPP
订阅
Bjemk
更多收藏集
微信扫码分享
微信
新浪微博
QQ
32篇文章 · 0订阅
c++11新特性之模板的改进
C++11关于模板有一些细节的改进:模板的右尖括号模板的别名函数模板的默认模板参数模板的右尖括号C++11之前是不允许两个右尖括号出现的,会被认为是右移操作符,所以需要中间加个空格进行分割,避免发生编
搞定技术面试:C++ 11 智能指针详解
经过调试后,最终发现导致内存泄漏的地点是一个频繁调用的函数中,有一定概率使四个指针没有释放,每个指针大小应该与内存宽度一致,也就是每个指针为 64位 8字节,四个指针就是32字节。而小小的32字节的泄露积蓄的能量可以达到数十G空间直至吃掉所有内存。 本文介绍一种不借助其他检测工…
从鸟哥微博到字节对齐
需要字节对齐的根本原因在于CPU访问数据的效率问题。因为CPU每次都是从以4字节(32位CPU)或是8字节(64位CPU)的整数倍的内存地址中读进数据的。(更深入的原因,谁告知下),如果不对齐的话,很有可能一个4字节int需要分两次读取。具体演示看下面的实验。
STL堆实现
堆是十分重要的数据结构,我们常用的优先队列就是基于堆实现的数据结构,堆排序也是基于堆实现的,所以,我们要理解堆的实现,之前自己根据堆的原理自己实现了堆,现在来分析一下STL中堆的实现代码,STL的堆实现相比自己实现的代码肯定要多很多,但原理是一样的,我们下面看一下。 STL中提…
如何优雅地管理C++ 中的内存
C++是一门Native Language,而说到Native Languages就不得不说资源管理,其中内存管理又是资源管理中的一个大问题,由于堆内存需要手动分配和释放,所以必须确保申请的内存得到正确的释放。对此一般的原则是"谁分配的谁释放",但即便如此仍然会出现内存泄漏,野…
一文了解MakeFile
Makefile 作为编译c/c++ 的脚本语言,需要了解一下他的规则。 如果要在目标中写条件语句,则使用shell语法的条件判断。唯一不同,则是每一行都需要写分号,查看这里 如果你没有加伪目标项,那么如果有和目标项同名的文件,则不会执行该目标项,会报: make: 'xxx'…
C++虚函数的工作原理
讨论静态绑定与动态绑定,首先需要理解的是绑定,何为绑定?函数调用与函数本身的关联,以及成员访问与变量内存地址间的关系,称为绑定。 理解了绑定后再理解静态与动态。 静态绑定:指在程序编译过程中,把函数调用与响应调用所需的代码结合的过程,称为静态绑定。发生在编译期。 动态绑定:指在…
C++中如何调用C语言的代码
在进行C++开发的时候,由于C、C++编译规则是不同的。C++编译函数方法是使用mangle的技术。 而在C语言中是没有这个技术的,所以如果我们想要调用C语言开发的一些API,就需要使用 extern "C"修饰C语言的函数声明。 但是我们每次使用C语言的API都用这个 ext…
聊一聊 C++的特性 explicit && 匿名空间
用于修饰 class 的数据成员,即所谓“静态成员”。这种数据成员的生存期大于 class 的对象(实例/instance)。静态数据成员是每个 class 有一份,普通数据成员是每个 instance 有一份,因此也分别叫做 class variable 和 instance…