
C++
蓝贝壳壳
热爱软件事业 崇尚自由 一个不愿成为码农的码农 多年苦心探索和参悟 希望解放全天下苦逼的码农
展开
-
基于环形缓冲区的deque实现方法
众所周知,C++ STL中有一个叫做deque的容器,实现的是双端队列数据结构,这种队列允许同时从队列的首部和尾部插入和删除数据。 然而在STL中这种数据结构是用”分段连续”的物理结构实现的(可以参考侯捷老师的《STL源码剖析》)。网上分析STL中这种容器的文章很多,如: http://blog.youkuaiyun.com/baidu_28312631/article/details/48000123原创 2016-10-20 00:50:50 · 1926 阅读 · 0 评论 -
慎用频繁小块内存申请,让程序健步如飞
最近碰到一个应用,为一块已经载入内存的Tab文件生成一个动态数组用于建立单元格数据索引表。当然这也算是C vs C++的一个典型例子吧。由于事先不知道Tab文件的行数和列数,无法预先生成动态数组。方案1:首先想到的是遍历整个文件,用一个临时map记录每个单元格的索引信息,并计算出表格的行数和列数。然后申请根据行数和列数申请一个合适大小的动态数组,并将临时map中的数据搬到动态数组中,这样只需要原创 2016-11-13 14:40:29 · 2088 阅读 · 0 评论 -
不要使用有副作用的std.map.[]操作符
map的[]操作符包含隐性操作:当key不存在的时候,会默认执行insert操作这种隐性操作在大多数情况下是有害的。原创 2017-05-05 15:02:51 · 608 阅读 · 0 评论 -
一直被错爱的C/C++语法
最近在为dex-理想中的编程语言模型(https://github.com/dexlang/dex)整理一些资料发现C/C++的函数申明语法真的很奇怪:golang已经在官方blog详细说明为什么要改掉C的函数声明语法https://blog.golang.org/gos-declaration-syntax大意如下:C的函数声明语法:retType funcName(p...原创 2018-08-06 00:03:41 · 285 阅读 · 0 评论