随笔分类 - C/C++
C/C++ language programming
摘要:想要快速了解memcached内部原理么?那么赶紧离开本页,这会耽误您的时间。 不知时隔多少时间,今天受了些刺激,在码农路上开始犹豫起来,但是想想自己也没其他本身,就只好放下王者荣耀,重新看看技术内容了。自己看东西比较功利,但总是一开始比较功利,突然被中间说明地方吸引了,就会一层一层的跟下去,这也是
阅读全文
摘要:ique_ptr is what you need, since it makes Settings the only (unique) owner of the pointed object, and the only object which is responsible for its des
阅读全文
摘要:参考
百度百科内存对齐 对齐作用
可以使得以最少的次数将操作数加载到寄存器中,如果数据没有对齐,则当CPU以最小读取数据大小从内存读入数据时可能只取到了一部分数据,而对齐情况下可以一次读入。 对齐修改
在程序中可以通过 指定对齐大小,x即为需要指定的对齐大小。默认情况下32位平台采用4字节对齐...
阅读全文
摘要:C++中子类复写父类virtual方法要做到函数参数和返回值类型都一致,而Java中返回值类型可以不同,即子类复写的方法返回值类型可以使父类方法返回值类型的一个子类型。比如## 返回类型兼容情况###Java 中不同返回值类型复写```public class Demo { public st...
阅读全文
摘要:##虚函数调用的例外我们知道在通过基类的指针或者引用调用某个对象的函数时,如果这个对象是一个派生类而且该方法是一个虚方法那么一般情况下就会调用派生类的虚方法实现。这个过程是C++的多态。然而这之中有些例外,如果当我们在基类的构造函数或者析构函数中调用相关的虚方法时,他们被绑定到本类层级里的方法实现,...
阅读全文
摘要:永远的溢出 运算溢出
溢出是一个永恒的话题。 此时c = 251658240,以为已经使用了long类型来存储结果,但是计算过程中就已经溢出了。应该在计算时就预先进行类型转换: 类型间比较 由于和unsigned类型比较,当mem_size为负数时,其实转换到unsigned是一个...
阅读全文
摘要:# forkfork产生的子进程是传统意义上的进程,fork之后执行路径就互不关联了,一旦fork返回后面的代码就在不用的进程上下文中执行了。到底是子进程先执行还是父进程先执行一般是随机的或者依赖实现的。# vforkvfork使得“子进程”先于“父进程”执行,子进程在父进程的进程空间中执行直到其调...
阅读全文
摘要:# 参考UnixUnix环境高级编程 第三章 文件IO# 偏移共享## 单进程单文件描述符在只有一个进程时,打开一个文件,对该文件描述符进行写入操作后,后续的写入操作会在原来偏移的基础上进行,这样就可以实现最一般的顺序写入了。## 多进程单文件描述符当多个进程共享一个描述符时他们的偏移也是共享的,比...
阅读全文
摘要:# 参考1. Unix环境高级编程,第9,13章# 介绍守护进程就是Linux中使用`ps aux`那些一般以d结尾的程序,比如rsyslogd,sshd等,为daemon简称。他们是长期在后台执行的随终端关闭而关闭的程序。一般情况下我们登陆终端,执行程序只要产生的不是守护进程,一般的fork得到的...
阅读全文
摘要:#C++ 的那些坑 (Day 0)## 永远的for循环其实这里要说的并不是for循环本身还是其中的计数变量的类型的选择。```std::string s = "abcd"for (string::size_type i=0; i原因在于`size_t`或者`string::size_type`其实...
阅读全文
摘要:lower_boundlower_bound(begin, end, target)用来查找一个已排序的序列中[begin, end)第一个大于等于target的元素index。数组A如下:value: 1, 2, 2, 3, 4, 5, 5, 6, 7index: 0, 1, 2, 3, 4, 5...
阅读全文
摘要:练习一发,主要是使用placement new在原始内存上创建对象。半路md面试电话来了,赶紧存档,看Java大法#include #include #include #include using namespace std;class Object {public: static int c...
阅读全文
摘要:要求是不使用sizeof,一开始写了个看似可以,但是有问题的方法:long* a = NULL;long* b = a + 1;int n = (char*)b - (char*)a;这个方法等价于sizeof(long),但这其实有问题,在32位编译器上编译得到的代码在64位机器上得到的结果还是n...
阅读全文
摘要:今天逛cplusplus.com发现C++还真多了不少方便使用的特性,先了解些最常用的初始化列表 vector tmp({1,2,3,4}); vector > tmp_pair( { {1, 2}, {3, 4} ...
阅读全文
摘要:Java中一个类的函数重载可以在本类中的函数和来自父类中的函数之间进行,而C++类中的函数重载只能是本类中的(即不包括来自父类的函数),这是他们一个非常重要的区别。在其他方面的要求都是一致的,即要求函数名称一致,参数不同。只有返回值类型不同的函数,不能构成重载(会有编译错误,提示函数定义重复)。1....
阅读全文
摘要:#include #include #include using namespace std;templateT mul(T a, P b) { return a * b;}templatestring mul(string a, int b) { string res; for ...
阅读全文
摘要:在C++模板中的类型参数一般可以使用typename和class,两者没有什么不同。但是typename比class多项功能:“任何时候当你想要在template中指涉一个嵌套从属类型名称,就必须在其前面加上关键字typename”因为C++默认情况下把属性都作为值来看待而不是类型。#include...
阅读全文
摘要:#include #include using namespace std;class Base { public: int add(int a, int b) { return a + b; }};class Derived : public...
阅读全文
摘要:#include #include using namespace std;int add(int a, int b) { return a + b;}int main() { function f = add; cout fsingle = bind(add, 1...
阅读全文
摘要:#include #include using namespace std;class Pen {public: virtual void write(int color = 0) { coutwrite(); return 0;}输出:write with col...
阅读全文

浙公网安备 33010602011771号