Matlab 和 Python 等动态语言虽然用起来方便,但缺点是运行较慢,对于一些计算量大的项目不适合.目前在高性能计算中广泛使用的只有两种语言即 C++ 和 Fortran.虽然 Fortran 普遍被认为是一个过时的语言,但在计算物理中,许多人仍然在使用,一是因为以前遗留下的 Fortran 代码比较多,二是一些年纪较大的学者只会 Fortran.
一本在数值算法中很有名的书是 Numerical Recipes,这本书第三版以前都使用 Fortran 或 C,而第三版却只有 C++,这也是本书选择介绍 C++ 而不是 Fortran 的原因之一.本书将从 Numerical Recipes 中借鉴许多代码上的风格和算法.
C++ 的特征实在多不胜数,事实上无论是什么语言,做计算物理的研究者大多会倾向于只选择一些最简单的语法来使用. 我们在这里列出本书使用的 C++ 特性.
bool, char, int, long, long long, float, double,long double)
=, +, -, *, /, %, ++, --, +=, -=, *=, /=, ?:) 以及优先级
if, else if, else)
for, while,do while)
const
typedef
new, delete.
throw, try, catch
cmath
complex
vector
string, string32
iostream(cin,cout,<< 算符,>> 算符)
fstream
public, private,数据成员,函数成员,operator+, -, *, /, (), [])
#include, #define, #if, #ifdef, #ifndef, #else, #endif)
namespace
constexpr