Happens-before
取自preshing博客上的几篇文章(1,2,3)。除了部分翻译外,还有自己的理解。
Happens-before关系
假设A和B两个操作是由多线程程序执行的,如果A happens-before B,那么A对内存的操作在B被执行前对执行B的线程切实可见。
取自preshing博客上的几篇文章(1,2,3)。除了部分翻译外,还有自己的理解。
假设A和B两个操作是由多线程程序执行的,如果A happens-before B,那么A对内存的操作在B被执行前对执行B的线程切实可见。
在写代码是发现拷贝构造函数有时候没有调用,想起C++ Primer中提到过
the compiler can omit calls to the copy constructor.
后来查到是发生了copy elision。
首先有那么一个类定义,其中静态成员c是对象编号。
问题:给定一个数组,除了其中一个数出现一次,其他数都出现了两次,找到这个数。
最简单的办法用莫过于用map统计每个数出现的次数,但这除了需要遍历数组外,还需要遍历map,且需要O(n)空间。
临近春节,想起了前两个月重温的游戏,HomeWorld。
2008年,高中时,我首次接触到了HomeWorld 2,游戏的画面和操作深深的震撼我。这个游戏是首个完全的3D RTS、视角能够3D旋转、舰船可以在空间中任意移动,不限于一个平面、舰船精细的建模和纹理,这些让我很长时间都沉浸在游戏当中。
根据素数的定义,对于自然数$n$,只要能够找到除了1和它本身以外,能够整除该数的正整数,那么它就不是素数。
|
|
又因为,如果$d$是$n$的约数,那么$n=d \times n/d$,故$n/d$也是,且$\min{d, n/d} \leq \sqrt{n}$,
C++中有编译时多态和运行时多态,运行时多态是由虚函数实现的。虚函数是用过虚函数表(vftable,virtual function table)来实现的,这个表包含了这个类的虚函数地址,解决了继承、覆盖。当使用父类指针来操作一个子类对象的时候,通过子类对象的虚函数表指针(vfptr,virtual function table pointer)找到子类的vftable,进而找到应该调用的函数。