作为一个偏科严重的理工男,高中时期,我可以在数学和理综考试中拿到满分或者接近满分的成绩,但我也可以在语文和英语两门科目当中考出刚及格甚至不及格的成绩。因此,迷上写博客文章,以及出版一本 GRE 的练习册对我而言也算是很神奇的事情了。
利用位运算验证数独正确性
C++ 标准库中缺少的字符串函数:`starts_with` 和 `ends_with`
这是一篇简短的记录。
C++ 标准模板库的 std::string
很好很强大,但是并没有提供判断一个字符串是否以另一个字符串开始/结束的接口。这里为 std::basic_string<charT>
提供这两个接口。
利用 std::transform 对字符串进行大小写转换
对字符串的操作一直被认为是程序员的基本功之一。对于一个英文的字符串来说,最简单的操作,就是进行大小写转换了。这不是什么难事,但这里我们讨论的是 C++ 风格的写法。
谈谈 C++ 中集合的交集和并集
在数学中,集合是最基本的概念之一。编程时,我们不可避免地会涉及到集合及其相关操作。在 C++ 中,标准模板库(STL)提供了 std::set
/std::unordered_set
两种传统意义上的集合(除此之外,还有 std::multiset
和 std::unordered_multiset
)。其中,std::set
(和 std::multiset
)定义在头文件 set
当中,从 C++98 起就有支持;而 std::unordered_set
(和 std::unordered_multiset
)则定义在头文件 unordered_set
当中,从 C++11 开始支持。
此篇我们讨论如何在 C++ 中进行集合的交集和并集操作。