unordered_set/map自定义哈希函数

今天在使用C++中的unordered_map的时候遇到一个小问题。我试图将std::pair<int, int>作为键放到unordered_map中,结果编译器无情地报错。众所周知,一旦模板类编译出错,错误信息一般都要几十行甚至数百行,在其中“徜徉”了许久之后,我发现下面的错误信息可能对我会有帮助:

C++字符串字面值常量

在C++中,一个字符串字面值(string literal)一般是指使用双引号(””)包围起来的一段字符串,例如: 有时,人们习惯于写成 char *s = “string literal”,实际上这是不对的,因为C++中的字符串字面值是一个常量,将一个常量直接赋值给一个非const变量可能会造成不可预知的行为,例如:

C++大整数运算(七):有理数

C++大整数运算系列文章在前五节讲述了实现一个无符号大整数类的基本方法,第六节介绍了如何使用无符号大整数实现一个带符号大整数类。 本文的目的是介绍有理数类的实现方法。 在数学上,可以表达为两个整数的比(a/b 且 b不为0)的数被定义为有理数。 为了便于统一表示和方便计算,我们规定有理数必须表示为其最简形式(比如2/4应当表示为1/2),整数的分母必须为1。 有了之前大整数类的工作基础,我们可以通 …