mmxingye

导航

上一页 1 ··· 4 5 6 7 8 9 下一页

2022年4月13日 #

14 | SFINAE:不是错误的替换失败是怎么回事?

摘要: 模板里的一个特殊概念——替换失败非错(substitution failure is not an error),英文简称为 SFINAE。 函数模板的重载决议 我们之前已经讨论了不少模板特化。我们今天来着重看一个函数模板的情况。当一个函数名称和某个函数模板名称匹配时,重载决议过程大致如下: 根据名 阅读全文

posted @ 2022-04-13 21:42 独立树 阅读(227) 评论(0) 推荐(0) 编辑

2022年4月12日 #

03 | 桶排序和归并排序

摘要: 分治算法 概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题.....直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 步骤 分治法在每-层递归上都有三个步骤: 分解:将原问 阅读全文

posted @ 2022-04-12 20:49 独立树 阅读(65) 评论(0) 推荐(0) 编辑

13 | 编译期能做些什么?一个完整的计算世界

摘要: 这一讲我们来看一下模板的另外一种重要用途——编译期计算,也称作“模板元编程”。 编译期计算 首先,我们给出一个已经被证明的结论:C++ 模板是图灵完全的 这句话的意思是,使用 C++ 模板,你可以在编译期间模拟一个完整的图灵机,也就是说,可以完成任何的计算任务。 一个小例子 template <in 阅读全文

posted @ 2022-04-12 20:36 独立树 阅读(318) 评论(0) 推荐(0) 编辑

2022年4月11日 #

12 | 编译期多态:泛型编程和模板入门

摘要: 面向对象和多态 在面向对象的开发里,最基本的一个特性就是“多态” ——用相同的代码得到不同结果。以我们在[第 1 讲] 提到过的 shape 类为例,它可能会定义一些通用的功能,然后在子类里进行实现或覆盖: class shape { public: … virtual void draw(cons 阅读全文

posted @ 2022-04-11 21:37 独立树 阅读(205) 评论(0) 推荐(0) 编辑

2022年4月10日 #

10 | 到底应不应该返回对象?

摘要: F.20 《C++ 核心指南》的 F.20 这一条款是这么说的 : F.20: For “out” output values, prefer return values to output parameters 翻译一下: 在函数输出数值时,尽量使用返回值而非输出参数 这条可能会让一些 C++ 老 阅读全文

posted @ 2022-04-10 21:41 独立树 阅读(103) 评论(0) 推荐(0) 编辑

09 | 易用性改进 II:字面量、静态断言和成员函数说明符

摘要: 自定义字面量 字面量(literal)是指在源代码中写出的固定常量,它们在 C++98 里只能是原生类型,如: "hello",字符串字面量,类型是 const char[6] 1,整数字面量,类型是 int 0.0,浮点数字面量,类型是 double 3.14f,浮点数字面量,类型是 float 阅读全文

posted @ 2022-04-10 21:11 独立树 阅读(99) 评论(0) 推荐(0) 编辑

2022年4月9日 #

01 | windows下的字符转换

摘要: #include <stdio.h> #include <WinSock2.h> #include <windows.h> //gbk -> utf-16 int test1() { char text_gbk[256] = "砂隐村"; //字符串字面常量,取决于cpp文件自身的 wchar_t 阅读全文

posted @ 2022-04-09 21:28 独立树 阅读(41) 评论(0) 推荐(0) 编辑

08 | 易用性改进 I:自动类型推断和初始化

摘要: 如果要挑选 C++11 带来的最重大改变的话,自动类型推断肯定排名前三。如果只看易用性或表达能力的改进的话,那它就是“舍我其谁”的第一了。 auto 自动类型推断,顾名思义,就是编译器能够根据表达式 (注意是“表达式”!!接下来会和decltype对比) 的类型,自动决定变量的类型(从 C14 开始 阅读全文

posted @ 2022-04-09 20:38 独立树 阅读(242) 评论(0) 推荐(0) 编辑

2022年4月8日 #

07 | 迭代器和好用的新for循环

摘要: 什么是迭代器? 迭代器是一个很通用的概念,并不是一个特定的类型。它实际上是一组对类型的要求([1])。它的最基本要求就是从一个端点出发,下一步、下一步地到达另一个端点。按照一般的中文习惯,也许“遍历”是比“迭代”更好的用词。我们可以遍历一个字符串的字符,遍历一个文件的内容,遍历目录里的所有文件,等等 阅读全文

posted @ 2022-04-08 23:49 独立树 阅读(313) 评论(0) 推荐(0) 编辑

02 | 最短路径

摘要: 最短路径 Floyed算法 解决的问题 求解任意两点之间的最短路径 可以处理带有负权边的图, 但不能处理带有“负环”的图 思想 对于要求解的两个点,我们给定任意一个点作为中间点,经过中间点的路径有没有可能比直接到达更短? 动态规划的思想 时间复杂度 一个小例子 #include <cstdio> # 阅读全文

posted @ 2022-04-08 23:07 独立树 阅读(33) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8 9 下一页