排序算法总结
对十二种排序算法进行总结
C++ 类内存分布
这里不妨说下 C++ 内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。
Linux 下的静态库、动态库和动态加载库
本文主要介绍了 Linux 下的静态库、动态库和动态加载库。
C++指针与引用的区别
指针与引用是C++中两个很重要的概念,它们功能看过去很相似,就是都是间接引用某个对象,那么我们应该在什么时候使用指针,什么时候使用引用呢,下面请允许我慢慢道来: 1.永远不要使用一个指向空值的引用。一个引用必须始终指向某个对象,所以当你确定使用一个变量指向某个对象时,但是这个对…
有趣的 C++ 开源项目列表
一些有趣的 C++ 开源项目简介
一道 c++ 面试题的思考与学习
C++ 学习系列
C++ 资源框架速查表
C++ 开发相关的资源和框架大全
C++ 项目中的 extern “C” {} ,ifdef
C++ 项目中的 extern “C” {} ,ifdef
C++ 知识总结 (1)– 变量和基本类型
C++ 基本知识点总结,阅读自《C++ primer》
排序算法总结
排序算法:一种能将一串数据依照特定的排序方式进行排列的一种算法。 本文总结了常用的排序算法,加深对排序的理解。
趣文:C++ 程序员离职之前要做的事
C++ 程序员做起恶作剧也是蛮可怕的呢。
C++ 虚函数表剖析
为了实现 C++ 的多态,C++ 使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。
使用 JNI 实现 Sobel 算子图像边缘检测
绘制了一张挺漂亮的沙子效果图片。其实我们也是画家,只是我们不是用笔画而已,
[[译] 现代 C++ 性能表现优异的两个主要原因 ](https://juejin.im/entry/58281…
代表着自 1998 年起 13 年间第一个重要的更新,雄心壮志的 C++11 标准预示着 “现代 C++ 时代” 的到来。三年后,C++14 的出台标志着委员会在这十三年的孕育期中所追求的的全部功能集合的完成。
读者只需要稍微谷歌一下便能看到现代 C++ 中包含了许多的新特性。在这篇文章中,我仅会关注代表着 C++ 性能演进里程碑式的两个新特性:只能指针和移动语义。
C++ 中编写物理公式
与数值计算不同,这是一篇关于 C++ 中类型的运算的文章。
跳表 & 散列 1 – 字典 & 跳表
继续是《数据结构算法与应用:C++ 语言描述》的笔记,这是第七章跳表和散列的内容,本节会介绍字典和跳表。
hellozapi项目CMake编译脚本详解-CPP开发PHP之旅第二节
因为 zendAPI 采用的是 CMake 进行编译,所以我们的 hellozapi 项目也采用 CMake 进行编译,但是如果您有更擅长的 build system 您也可以按照自己的情况进行选择。只要您能保证能正常的找到 zendAPI 的头文件,PHP 的头文件和 zen…
现代 c++ 开发利器 folly 教程系列之:dynamic
用过 python、php 等动态类型语言的人肯定对动态数据类型不陌生。对于定义时不确定、运行时才确定的数据类型,使用动态类型是非常方便的。c++ 是一门不折不扣的静态类型语言,那么是否就无缘享受 “动态” 类型的好处了呢?不尽然。folly 为我们提供了 dynamic 类型,从一定程度上实现了 c++ 中的 “动态” 数据类型,为什么说是 “一定程度上” 呢,因为 dynamic 类型只支持 c++ 中的基本类型(部分)和复合类型(array 和 map),不支持自定义类型。
我和编程语言的爱恨情仇(上)
看看 c/c++ 是怎么欺负我的。
C++ 探索之旅 | 第一部分第二课:C++ 编程的必要软件
— 作者 谢恩铭 转载请注明出处 《C++ 探索之旅》全系列 内容简介 前言 编程的必要工具 选择你的 IDE 总结 第一部分第三课预告 1. 前言 经过上一课 C++ 探索之旅 | 第一部分第一课:什么是 C++ 之后,大家是不是摩拳擦掌,准备大干一场了呢。 这一课我们来做一些 C…
堆栈 1– 基本概念及实现方法
继续是《数据结构算法与应用:C++ 语言描述》的笔记,这次是新的一章内容,第五章堆栈。
队列 1 – 基本概念及实现方法
继续是《数据结构算法与应用:C++ 语言描述》的笔记,这是第六章队列的内容。
C++ 知识总结 (2)– 字符串和数组
总结有关字符串,数组的知识点
C++ 数据结构链表的实现代码
C++ 数据结构链表的实现代码
Google 开源项目风格指南
很少见到如此全面的编程规范
默默维护 30 年,glibc 创始人兼维护者辞职
GNU C library (glibc) 项目原作者兼维护者 Roland McGrath 宣布辞职和退出该项目。
C++11 新特性之 lambda
这是 C++11 新特性介绍的第三部分,涉及到 C++11 这次更新中较为重要的 lambda 表达式。
理解 C++ 虚函数表
虚表是 C++ 中一个十分重要的概念,面向对象编程的多态性在 C++ 中的实现全靠虚表来实现。在聊虚表之前我们先回顾一下什么事多态性。
C++11 新特性之新类型与初始化
这是 C++11 新特性介绍的第一部分,比较简单易懂,但是也有一些有趣的地方。
不想看 toy code 的读者可以直接拉到文章最后看这部分的总结。
C++ 程序嵌 Lua(基于 LuaBridge)
配置文件搞不定的,就得依赖脚本。C++ 程序想嵌点脚本,Lua 几乎是首选。Lua 的源码自带 Makefile,可以编译出静态库、解释器、编译器三个目标文件,作为宿主的 C++ 程序,除了要包含 Lua 头文件,还应该链接这个静态库。
二叉树面试题精选及详细讲解
收集了各大公司会面试到二叉树题,一共 18 题,并附上详细图文详解。
C&C++ – 写给 Android 应用开发者的 C 语言快速入门指北
据非官方不负责任的统计,有百分之八十的 Android 应用开发者,不会或者很少有机会写 C/C++。如果你是一个有追求的程序员,还是把 C 语言捡起来吧。
C++ 内存分配 (new,operator new) 详解
本文主要讲述 C++ new 关键字和 operator new, placement new 之间的种种关联,new 的底层实现,以及 operator new 的重载和一些在内存池,STL 中的应用。
算法:如何使用 C++ 实现一个简单的集合类(上)
本文总结了如何使用 C++ 实现一个简单的集合类。
Qt 入门教程连载
翻译自官网的入门教程文档
C语言中的const关键字使用总结
虽然之前学过c,但是并没有写过太多的代码,最近想要拾起c,写了一些代码,但是对const关键字比较陌生,这里总结一波。const关键字使用非常的灵活,这一点和php差别很大,php中const用来在类中定义一个常量,而在c中,const因位置不同有不同的作用,因情景不同有不同的…
CxxFiber: 一款强大且易用的 C++ 协程库
CxxFiber: 一款强大且易用的 C++ 协程库
特点
- 跨平台:同时支持 Linux32/64、OSX64 两个平台,支持 C++98;
- 高性能:网络性能强劲,支持海量协程,从此单机 1000K 不再是问题;
- 易开发:同步的方式编写代码,API 优雅简洁、简单易用、开发高效;
- 强融合:支持进程、线程、协程的混合使用,各司其职,充分发挥各自优点;
示例 c++:
include “Eco.hh”
int main(int argc, const char **argv) {
// CxxJDK init.
ESystem::init(argc, argv);
try {
EFiberScheduler scheduler;
scheduler.schedule([&](){
EServerSocket ss;
ss.setReuseAddress(true);
ss.bind(8888);
while (!gStopFlag) {
// accept
sp<ESocket> socket = ss.accept();
if (socket != null) {
// 创建新的协程
scheduler.schedule([=](){
try {
char buf[512] = {0};
// read
EInputStream* is = socket->getInputStream();
int n = is->read(buf, sizeof(buf));
printf("read buf=%s\n", buf);
// write
EOutputStream* os = socket->getOutputStream();
os->write(buf, n);
} catch (EIOException& e) {
e.printStackTrace();
} catch (...) {
}
});
}
}
});
// 开始协程调度
scheduler.join(); // 单线程调度模式
//scheduler.join(4); // 多线程调度模式:参数 4 表示并发调度的线程数
}
catch (EException& e) {
e.printStackTrace();
}
catch (…) {
printf("catch all...\n");
}
ESystem::exit(0);
return 0;
}
c++ 11 的 std::atomic
介绍 atomic 的使用以及它的几种 memory order
C++ 从零实现深度神经网络系列
作者的 C++ 从零实现深度神经网络系列文章整理链接。
每天学点 C++ 知识:为什么错误代码能正常工作
我想提出一个发人深思的主题来讨论:有时候,我们会看到完全不正确的代码却能工作得很好!经验丰富的程序猿不会对这个问题感到惊讶(这又是另一个故事),但对那些最近刚开始学习 C/C++ 的人来说,这个问题也许有点让人困惑。那么,今天我们就来看看这样一个示例。
C++11 的 5 个实用特性
Kernel Panic 总结了 C++11 中的 5 个实用特性:自动类型推导、强类型枚举、Unique 指针、static_assert、Lambdas 表达式。
垃圾回收器如何处理循环引用
垃圾回收是一门编程语言中必不可少的一部分,不论是手动释放内存的C和C++,还是自动回收垃圾的Java和C#等语言。对于Java这样的语言,一般的开发者不强求关心对象回收和内存释放,但是理解垃圾回收对开发工作还是大有裨益的。
图像处理笔记 —— 卷积
这篇文章是我以前在别的地方发的,最近发现 Segmentfault 把公式 bug 修好了。网上有各种各样对卷积的理解,有搞 EE 的,有搞 CS 的,有搞数学的。我尝试从图像处理的角度加入自己的理解。
C++ 线程池
用 C++ 写了个线程池
利用boost.python库实现C++与Python的整合
boost.python 库提供了便捷的方法来将 C++ 中的函数、类等导入到 Python 中使用,我们只需要添加少量代码,就能 C++ 与 Python 的整合。 将 C++ 代码借助 boost.python 编译成 Python 模块之后,我们可以像导入标准模块那样,将…
【计算机本科补全计划】C++牛客网试题习题解析
这个我不知道啊!!所以只好借用讨论区的回答咯。错了不怪我~~大文件表空间只能包含一个文件,但是文件可以达到 4G 个数据块大小。(只能包含一个文件,但是一个文件里可以包含多个数据文件??不知道是不是这样理解) 在 C/C++ 语言中,sizeof() 是一个判断数据类型或者表达…
[[译] V8 使用者文档](https://juejin.im/entry/575cc…
在本文档中,还将继续深入讨论这些概念并且介绍其他一些在你的 C++ 应用中使用 V8 的关键点。
可能是国内最火的开源项目 —— C/C++ 篇
本文整理了 C/C++ 语言中评分最高并且收藏量超过 100 的几款项目,以供开发者选择和交流,排名如下:
mazegenerator – 用 C++ 写的迷宫生成器
还记得《西部世界》里面的迷宫么,这个 repo 的作者用 C++ 写了一个迷宫生成器,可以生成各种各样的迷宫。
一次搞定C++右值,&&和move
英文抢先版,汉化版随后奉上。
【阮一峰】asm.js 和 Emscripten 入门教程
Web 技术突飞猛进,但是有一个领域一直无法突破 —- 游戏。
游戏的性能要求非常高,一些大型游戏连 PC 跑起来都很吃力,更不要提在浏览器的沙盒模型里跑了!但是,尽管很困难,许多开发者始终没放弃,希望让浏览器运行 3D 游戏。
2012年,Mozilla 的工…
很详细的 KMP 算法讲解,逻辑清晰,易懂
或许是最详细的
女神经之 C++ 自学之路 (关于句柄)
刚接触到句柄, 对句柄的理解很浅显; 就是减少重复编译而产生的;如果我们改动了某个头文件,那么所有包含这个头文件的相关文件都得进行重新编译、连接等等等,这在大项目中,是非常耗费时间的;
使用句柄类(头文件和接口都不变,有一个指向结构的指针),只改动实现的部分,我们可以对句柄实现的方法进行修改,但保持头文件和公共的接口不改变,这也就是可以减少不必要的编译时间;
句柄要如何使用呢?接下来我将根据自己的理解写一小段代码。
浅析 C++ 对象布局
C++ 对象布局
C 语言中宏的正常用法
本文介绍一些 C/C++ 中宏的正常用法。 以及一些你绝对不会想让你家孩子知道的令人惊叹的先进上古技术。
Node.js 服务端和 Qt C++ 客户端之 HTTP POST 和 TCP Socket 通信
最近有个需求,需要将 Qt/C++ 客户端的一些数据传输至 Node.js 服务端,有些需要一次性发送,另外一些由于更新频率高,需要建立 Socket 长链接。Google 了一下,发现这方面的资料少得可怜,而自己在摸索的过程中也走了不少弯路,于是把这几天学到的东西整理了一下,以 Demo 的形式把 HTTP POST 和 TCP Socket 通信过程加以实现。