偶尔看到了汉诺塔这个问题,作为益智题从正向分析了一下,很难解. 编程解的思路倒是很清晰.简单记录一下
#include <iostream>
#include <vector>
struct Stock
{
std::vector<int> plates;
int id = 0;
};
Stock g_stocks[3];
… Read More 很多设计模式相关的资料都是用
Java
来描述的,有必要简单补充一下Java
和C++
在OOP
技术层面上的区别
Java
风格的接口可以视为一个只有pure virtual
=
是右结合的,这和<<
是完全不同的,a=b=c
意味着a=(b=c)
,b=c
将先执行,而a<<b<<c
则是(a<<b)<<c
,a<<b
将先执行.… Read MoreC++标准库提供的 mutex 在大部分场合都足以保证线程安全, 但是当问题变得更加极端时,就可能需要使用lockfree风格的并行编程了. 而为了正确实现lockfree, 你将打开一扇新的大门, 接下来的名词都是在学习过程中必须正确理解的: memory model, reordering, weak(relax), strong(strict), fence, barrier, release, acquire, seq_cst, consume, mutex, futex,
… Read More这里谈一下个人的学习建议.
首先可以阅读官方的入门教程, 看完这一部分, 对于一个熟练的C++程序员, 应该可以凑合写出可堪一用的代码了. 对于大部分不以Python为主要工作语言的开发者,到此基本就足够了.
如果有时间,我建议直接阅读Python in a Nutshell第七章之前的内容(不含第七章),并不用完全看懂,大部分细节也不用去记忆,只需要看完即可,至此,你就能基本了解Python的运行机制, 写出质量稳定可控(不会存在低级错误)的代码了.
上面两步完成后, 对一个熟悉C++的程序员而言, 基本任何Level的Python资料都可以看了. 你可以继续看Python in
[[vptrA,...][vptrB,...]]
,vptrA
指向了TableC_A
,vptrB
throw-try-catch
是异常系统的典型三个环节.
exception
为基类的若干异常,我们可以使用这个类,也可以自定义类,该类的const char * what()
成员用于给用户提供信息.
&&
与||
不会进行短路求值.T
或T&
,而不要是指针.a<b
为假,a>b