在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
- 通过分析简单具体的例子,试图寻找普遍的规律。
- 在二维数组的中间选取一个数字,转变成从数组的一个角上选取数字。
- 如果该数字大于要查找的数字,则剔除这个数字所在列;如果该数字小于要查找的数字,则剔除这个数字所在的行。
- 也可以选取左下角的数字。
- 注意特殊输入测试(空指针)。
- 根据行号和列号计算出相对于数组首地址的偏移量。
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
C++ 与 STL 入门
与其把 C++ 学得一知半解,还不如先把 C 语言的基础打好;
C++ 的精华与糟粕并存。
使用 C 头文件:在 C 头文件前加一个小写的 c 字母,然后去掉 .h 后缀;
C++ 流最大的缺点就是运行太慢;
如果两个函数的参数类型完全相同,则是不能重载的,解决方案是:分别把函数写在各自的命名空间里;
使用了 using namespace std 语句,可以用 cin 代替 std::cin,cout 代替 std::cout;
使用 const 声明常数,而不是用 #define;
仍然可以用 int 来表示真假,但是用 bool 可以让程序更清晰。
异常处理、输入输出流、Java 平台与内存管理
try 块之前就出现异常,会直接结束,不会执行 finally 块中的代码;异常处理的目的:为了提高程序的安全性与鲁棒性。
JVM 将出现的错误表示为一个异常并抛出,这个异常可以在 catch 块中进行捕获,然后进行处理。
Java 中把异常当作对象来处理,并定义了一个基类(java.lang.Throwable)作为所有异常的父类。
关键字、基本类型与运算、字符串与数组
用于直接强行跳出当前循环,不再执行剩余代码。
仅仅终止了内层循环的执行,而不影响外层循环的执行。
函数和递归
函数可以定义成:
1 | 返回类型 函数名(参数列表) |
函数体的最后一条语句,应该是“return 表达式”;
参数和返回值最好是“一等公民”;
执行过程中,碰到了 return 语句,将直接退出这个函数,不去执行后面的语句;
始终没有 return 语句,则会返回一个不确定的值。
定义结构体的方法为:
1 | struct 结构体名称 |