摘要: 本篇讨论数组与指针之间的关系,分别以一维数组与二维数组为例进行说明。 一. 一维数组。 首先,让我们明确以下两点: 第一,数组名是一个固定的东西,它只能代表一个数组,也就是说,不允许这个数组名在后面又去表示另一个数组。 第二,数组名是一个指针,并且是一个常量指针。 现有一条语句: array[2] 阅读全文
posted @ 2020-02-14 22:07 Hello_Nolan 阅读(1244) 评论(0) 推荐(0) 编辑
摘要: 题目: 编写一个模板函数 mismatch,返回值是使不等式 a[i] ≠ b[i]成立的最小索引 i ,0 ≤ i < n 。 思路: 传入两个数组(假定两数组元素个数相同,否则没有意义),依次比较元素即可。有不匹配时返回下标,完全匹配时返回 -1。 代码: 1 #include <iostrea 阅读全文
posted @ 2020-02-13 22:48 Hello_Nolan 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目: 编写一个模板函数 is_sorted,当且仅当a[0 : n - 1]有序时,返回值为 true。测试你的代码。 思路: 数组可以升序有序,也可以降序有序,也可以所有元素均相等。我假设,当数组元素只有一个,或者数组所有元素均相等的时候,数组自然有序。 数组升序降序是未知的,尤其是开头有元素相 阅读全文
posted @ 2020-02-13 22:27 Hello_Nolan 阅读(698) 评论(0) 推荐(0) 编辑
摘要: 题目: 编写一个模板函数 iota , 使 a[i] += value 。测试你的代码。 思路: 正常思路即可,但是我不懂这个函数名字意义是什么。 注:本题目原书翻译有错,本人已修改正确。否则题目的意义不明。 代码: 1 #include <iostream> 2 using namespace s 阅读全文
posted @ 2020-02-13 20:32 Hello_Nolan 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 题目: 编写一个模板函数 inner_product,返回值是∑a[i]*b[i] (i 从 0到 n - 1)。测试你的代码。 思路: 由题可知,本函数计算的是两个数组的内积。内积一般是数字,如整数,浮点数。函数返回值应该设置为与数组元素相同类型。 代码: 1 #include <iostream 阅读全文
posted @ 2020-02-13 16:22 Hello_Nolan 阅读(2059) 评论(0) 推荐(0) 编辑
摘要: 题目: 编写一个模板函数 fill,给数组a[start : end - 1]赋值 value。测试你的代码。 思路: 正常思路即可。当 start > end 时,进行交换,利用一下 new_swap() 函数。 代码: 1 #include <iostream> 2 using namespac 阅读全文
posted @ 2020-02-13 13:18 Hello_Nolan 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 题目: 编写一个模板函数 count,返回值是数组 a[0: n - 1]的数值个数。测试你的代码。 思路: 首先,函数计算数组个数,返回值应该是 size_t 类型,为了简单起见,将其设为 int 类型。 下面考虑函数参数。一般来说,涉及数组的问题,需要传入数组名和数组元素个数。这里需要详细说明一 阅读全文
posted @ 2020-02-13 12:44 Hello_Nolan 阅读(4325) 评论(0) 推荐(0) 编辑
摘要: 题目: 解释为什么下面程序的交换函数没有把形参 x 和 y 所对应的实参的值交换。如何修改代码,使实参的值得到交换? 原交换程序: 1 void swap(int x, int y) { 2 int temp = x; 3 x = y; 4 y = temp; 5 } 思路: 在C++中,参数传递方 阅读全文
posted @ 2020-02-13 12:10 Hello_Nolan 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 1. 对于单纯的常量,尽量用 const 对象或 enum 替换 #define 2.对于形似函数的 宏,应该用 inline 函数替换 #define 3. const 出现在星号左边,表示被指向的东西是常量;出现在星号右边,表示指针是常量。 4. 应该在所有不需要改动的地方,使用 const , 阅读全文
posted @ 2020-02-10 08:00 Hello_Nolan 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 1. 声明是告诉编译器某个东西的类型和名称,但略去细节。定义则需要提供细节。 2. size_t 是一个 typedef ,是 C++计算个数时用的某种不带正负号的类型。 3. 初始化是给予对象初值的过程。对于用户自定义的对象,初始化由构造函数执行。 4. explicit 可以防止构造函数执行隐式 阅读全文
posted @ 2020-02-09 17:39 Hello_Nolan 阅读(92) 评论(0) 推荐(0) 编辑