站在软件测试的角度上来看问题
为什么单独把他单独的拎出来讲,因为PAT的Oj的几个测试用例就是根据软件测试的方法针对性的提出几个测试用例!
当我们对一个问题进行求解,执行案例答案一致,这个时候不要开心的太早,因为这个最简单最普通的一个测试用例。当把自己的程序丢到oj上跑时,如果出现部分答案正确部分答案错误,那么恭喜你,程序基本思路是对的。针对部分答案错误的问题,只需修改程序的出口。
就目前刷题而言,几个测试用例见以下(欢迎评论区补充)
- 上面提到的最普通的案例,就是所给的案例
- 极端值
- 边界值,PAT每道题都会给出一个值得范围,这里会出一个最大值的案例。比如,题目给出N not less than 1000,n不超过1000,那么一定有个用例是n=1000的。举一反三,某些问题也可能出现n=0的情况
1.error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' (or there is no acceptable conversio
n)
- 错误代码:
string str=" ";
cout<<str<<endl;
- 错误原因:
在#include<iostream.h>中string类没有重载“<<”操作符
- 解决办法:
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同
cout<<str.c_str()<<endl;
2.error C2536: 'std::pair<char [6],double>::first' : cannot specify explicit initializer for arrays
- 错误代码
pair <string,double> product3;
product3 = make_pair ("shoes",20.0);
- 错误原因
模板使用出错
- 解决办法
make_pair(string("abc"),string("123"))
3.sizeof()和strlen()求字符数组长度
strlen(char*)
函数求是字符串的实际长度,它可以用来获取动态实际字符数组的长度,是从开始到遇到第一个“ ”,如果只是定义没有赋予初始值,这个结果是不确定的,它会从数组的首地址开始一直找下去,直到遇到“ ”停止查找。
sizeof()
求所占总空间的字节数,静态的,跟初始状态字符数组的大小有关系,大小等于初始时字符数组的大小或者等于初始时字符数组的大小+1('