C++
文章平均质量分 51
yang_chen_shi_wo
这个作者很懒,什么都没留下…
展开
-
内存碎片讲解
内部碎片是在一个已分配块比有效载荷大时的现象。例如,一个分配器的实现可能对已分配块强加一个最小的大小值,而这个大小要比某个请求的有效载荷大。或者分配器增加块大小以满足对齐约束条件。内部碎片的量化很简单,就是已分配块大小和他们的有效载荷之间差的和。因此,在任意时刻,内部碎片的数量只取决于以前请求的模式和分配器是实现方式。外部碎片是当空闲存储器合计起来足够满足一个分配要求,但是没有一个原创 2015-06-09 09:00:44 · 373 阅读 · 0 评论 -
C++ 测试夹具 testharness leveldb
leveldb中的测试夹具首先贴出leveldb中testharness相关的源码,之后再给出自己的理解。写这个主要是因为有了测试夹具能明显提高我们的工作效率,他能方便的给我们指出哪里是错误的。方便我们进行定位错误和修改。这个是testharness.h// Copyright (c) 2011 The LevelDB Authors. All rights reserved.原创 2015-06-03 10:14:05 · 1792 阅读 · 0 评论 -
函数对象
首先是定义函数对象:其实也就是定义一个public的operator()函数,其参数跟在()之后,用()括起来。返回值经常是bool型。class compare{public: bool operator()(const string &a,const string &b ){ if(a[0]==b[0]) return true;原创 2015-09-13 21:19:55 · 249 阅读 · 0 评论 -
C++和C代码:删除字符串中所有前导空格和所有后导空格,单词之间最多只留一个空格
string remove_blank_in_str(string str) { string result; size_t length = str.size(); size_t begin = 0; while(str[begin]==' '){ begin++; } wh原创 2015-09-10 23:20:36 · 3691 阅读 · 0 评论 -
给source insight添加.cc的C++文件后缀识别
给source insight添加.cc的C++文件后缀识别 今天在读mysql代码的时候,发现.cc结尾的文件都没有添加进来,google下了,发现原来这么操作一下就ok了Options -> Document Options, Document Type 下拉选 C++ Source File, File Filter 中加入,*.cc原创 2015-07-28 21:48:53 · 1334 阅读 · 0 评论 -
vs 生成类图和查看对象的内存布局
查看内存布局的命令:使用cl命令的/d1reportAllClassLayout或reportSingleClassLayoutXXX选项。这里的reportAllClassLayout选项会打印大量相关类的信息,一般用处不大。而reportSingleClassLayoutXXX选项的XXX代表要编译的代码中类的名字(这里XXX类),打印XXX类的内存布局和虚函数表(如果代码中没有对应的类,原创 2015-07-28 22:07:13 · 3291 阅读 · 0 评论 -
C++ 通过null指针调用成员函数 正常
class A{public: void foo(){cout << "foo" << endl;}};int main(){ static_cast(0)->foo();}这个是可以打印出来的。虽然foo函数是成员函数,其需要一个this指针,但是由于他没有使用任何成员数据,所以不会对指针进行解引用操作。所以这里仅仅是将0强制转换为A类型的指针,也就是会把0赋值给原创 2015-08-16 19:14:57 · 500 阅读 · 0 评论 -
C++输出精度控制
原文地址:http://blog.csdn.net/xuexiacm/article/details/8159007#include #include using namespace std; void main() { double f = 3.1415926535; cout << "Enter the huashi temperatu转载 2015-08-11 12:10:07 · 1165 阅读 · 0 评论 -
对虚拟继承类型求sizeof
#include #include #include #include #include #include #include #include using namespace std;class A{public: char a[3]; virtual void hehe(){}};class B:public virtual A{public:原创 2015-08-16 11:04:32 · 434 阅读 · 0 评论 -
C++常用类 shared_ptr
class unCopyable{protected:unCopyable(){}~unCopyable(){}private: unCopyable(const unCopyable &);unCopyable & operator=(const unCopyable&);}class home :private unCopyable{}注意上面的基类的protected类型的原创 2015-07-08 21:18:04 · 530 阅读 · 0 评论 -
[C++对象模型][8]多重继承与虚函数表
[C++对象模型][8]多重继承与虚函数表原文地址:http://www.cnblogs.com/itech/archive/2009/02/28/1399995.html一 多重继承1) 代码:Code#include iostream>using namespace std;class B1{public: int x;转载 2015-07-28 16:40:13 · 318 阅读 · 0 评论 -
字符串的排列和组合代码 C++
以下代码用于求一组字母的排列和组合,思路:求组合时,采用递归的思路,当求数组的n个元素的组合时,首先将数组分为两部分,第一个元素和其余元素,当第一个元素在生成的组合中时,则在其余元素中求n-1的组合;当第一个元素不再生成的组合中时,则在其余元素中求n的组合。主函数用于调用上面描述的递归函数,用一个循环生成1到数组长度的所有组合,具体功能由子函数实现并打印出来。求排列时:也是采用递归思路,把一个字符原创 2015-08-09 13:26:46 · 2251 阅读 · 0 评论 -
C++类型转换小疑惑
int main(){ char *p = "a"; int i = (int)"a"; int i2 = (int)p; //int i3 = static_cast(p); int i5 = reinterpret_cast(&p); cout << p<<endl; cout << &p << endl; cout << i <原创 2015-08-16 18:48:33 · 281 阅读 · 0 评论 -
C++单例模式详解
原文地址:http://blog.csdn.net/fu_zk/article/details/11892095一、懒汉模式:即第一次调用该类实例的时候才产生一个新的该类实例,并在以后仅返回此实例。需要用锁,来保证其线程安全性:原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety.使用double-check来保证thread safety.但是如果处理大量转载 2015-07-03 19:30:37 · 345 阅读 · 0 评论 -
TCMalloc小记
原文地址转载 2015-12-06 17:41:08 · 259 阅读 · 0 评论