摘要: 第五部分: 实现 条款26: 尽量延后变量定义式的出现时间 请记住: 尽可能延后变量定义式的出现。这样做可以增加程序的清晰度并改善程序效率。 条款27: 尽量少做转型操作 请记住: 如果可以,尽量避免转型,特别是避免dynamic_cast。 如果转型是必要的,尽量把它隐藏在函数背后,别让客户自己去 阅读全文
posted @ 2021-01-07 19:22 thhyj 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 第四部分: 设计与声明 条款18: 让接口容易被正确使用,不易被误用 请记住: 好的接口很容易被正确使用,不容易被误用。你应该在你的所有接口中努力达成这些性质。 "促进正确使用"的办法包括接口的一致性,以及内置类型的行为兼容 "阻止误用"的办法包括建立新类型、限制类型上的操作,束缚对象值,以及消除客 阅读全文
posted @ 2020-12-01 14:27 thhyj 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 第三部分: 资源管理 条款13: 以对象管理资源 void f() { Investment *pInv = createInvestment(); ... delete pInv; } 当...区域提前return,或者抛出异常,delete语句就可能不被调用. 为了确保createInvestm 阅读全文
posted @ 2020-12-01 09:18 thhyj 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 第二部分: 构造/析构/赋值运算 条款05: 了解C++默默编写并调用哪些函数 对于一个类,如果自己没声明,那么编译器会默认生成一个copy构造函数、一个copy assignment操作符和一个析构函数。此外如果你没有声明任何构造函数,编译器还会声明一个default构造函数。 所有这些函数都是p 阅读全文
posted @ 2020-12-01 08:28 thhyj 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 第一部分: 让自己习惯C++ 条款01:视C++为一个语言联邦 请记住 -C高效编程守则视状况而变化,取决于你使用C的哪一部分。 条款02,03:尽量以const, enum, inline替换#define,尽可能使用const 对于指针变量的const 对于指针变量的const, 根据const 阅读全文
posted @ 2020-11-18 09:21 thhyj 阅读(65) 评论(0) 推荐(0) 编辑
摘要: codeforces1323D/codeforces1322B Present 老年退役选手打打CF玩玩,发现自己智力降低过多,差点DIV2连D都没做出来 题意: 有n个整数,$a_{1} a_{2} …… a_{n}$,求 $(a_1 +a_2) \oplus(a_1+a_3)\oplus……(a 阅读全文
posted @ 2020-03-08 11:34 thhyj 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 基于sobel算子的边缘检测算法的C++实现及改进 实验内容 1. 对已有的sobel算子边缘检测算法的学习 2. 对已有算法进行C++实现 3. 对已有算法进行改进 已有的边缘检测算法流程 1. 对图像进行灰度化得到灰度图像 2. 对灰度图像进行高斯模糊去除部分噪声 3. 利用sobel算子作为卷 阅读全文
posted @ 2019-12-17 15:16 thhyj 阅读(2811) 评论(0) 推荐(0) 编辑
摘要: Link Cut Tree 是用于维护由一组有根树组成的森林的数据结构,Link Cut Tree 的基本操作复杂度为均摊 $O(log2n)$,具体的定义和时间复杂度的证明可以移步《QTREE 解法的一些研究》,这里主要介绍它的基本操作的具体实现。 定义 操作 Link Cut Tree 支持以下 阅读全文
posted @ 2019-07-03 11:13 thhyj 阅读(265) 评论(0) 推荐(0) 编辑
摘要: Hello world cpp include int main() { std::cout 阅读全文
posted @ 2019-07-03 10:04 thhyj 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 int main() { 3 std::cout<<"Hello world!\n"; 4 } 阅读全文
posted @ 2019-07-02 20:34 thhyj 阅读(84) 评论(0) 推荐(0) 编辑