作者ric2k1 (Ric)
看板EE_DSnP
标题[建议] HW#7 的测试
时间Sun Dec 9 18:49:15 2007
有同学在问作业七要怎麽测试,
下列的 code 可以给大家参考一下... 当然欢迎你们测更多!!
=========================================================================
static void printArray(const IntArray& arr)
{
cout << "Access by index : ";
for (size_t i = 0, n = arr.size(); i < n; i++)
cout << "[" << i << "] " << arr.getData(i) << " " << endl;
cout << "Access by pointer: ";
for (size_t i = 0, n = arr.size(); i < n; i++)
cout << "[" << i << "] " << *(arr.getPosition(i)) << " " << endl;
}
int main()
{
IntArray arr(10);
cout << "Initial data for arr ---" << endl;
printArray(arr);
for (size_t i = 0, n = arr.size(); i < n; i++)
arr.setData(i, i*i);
cout << "Squared data for arr ---" << endl;
printArray(arr);
arr.resize(5);
cout << "Resize arr to 5 ---" << endl;
printArray(arr);
arr.resize(12);
cout << "Resize arr to 12 ---" << endl;
printArray(arr);
for (size_t i = 12; i < 20; i += 2)
arr.setData(i, i * 3);
cout << "Setting out of bound data ---" << endl;
printArray(arr);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.121.134.54
1F:推 ShooterYang:最上面的const IntArray& arr 是甚麽意思? 12/09 21:21
2F:→ ric2k1:就是传进去的是 reference, 所以我们可以省去 array 的copy 12/09 21:27
3F:→ ric2k1:但是我又不希望 printArray 有权限改到 array 的内容, 12/09 21:28
4F:→ ric2k1:所以加上 const, 让传进去的 arr 变成 read-only. 12/09 21:29
5F:→ ric2k1:注意: 由於 arr 变成 const object in printArray(), 12/09 21:29
6F:→ ric2k1:他将只能呼叫 const member function. 12/09 21:30
7F:→ ric2k1:see post 751. 12/09 21:31
8F:推 ShooterYang: 所以是传进去一个object吗 12/09 21:37
9F:→ ShooterYang:喔没事了 谢谢老师的回答 12/09 21:39
10F:→ ric2k1:Yes. 12/09 22:33
11F:推 ally01202:不是很懂... 怎样的结果才对呢... 12/09 23:55
12F:推 Knossos:Debug一下..第5、9行应该是arr,不是arr1...XD 12/10 23:18
13F:→ Knossos:第一部份输出10个元素,应该都要是0。 12/10 23:20
14F:→ Knossos:第二部份则是输出标签的平方:[4]=16.[8]=64 12/10 23:21
15F:→ Knossos:第三部份改变大小,应该变成输出五个整数,数字不变 12/10 23:22
16F:→ Knossos:第四部份再把大小扩大到12,从元素五到十一的值为零 12/10 23:22
17F:→ Knossos:最後一部份比较特殊一点:元素1~5不变,其余为零 12/10 23:23
18F:→ Knossos:但有特例:[12]=36.[14]=42.[16]=48.[18]=54 12/10 23:23
19F:→ Knossos:共十九个元素 12/10 23:24
20F:→ Knossos:嗯...这是我输出的结果,仅供参考...XD 12/10 23:25
21F:→ Knossos:补充一下:每部分都要有相同的两组答案,因为过程不同... 12/10 23:26
※ 编辑: ric2k1 来自: 59.121.128.162 (12/11 06:45)
22F:→ ric2k1:Thanks, 已修改. 12/11 06:45
23F:推 dryman:cout << "[" << i << "] " << (arr.getPosition(i)) << " 12/11 13:35
24F:→ dryman: ↑多了一个*印出不是地址 12/11 13:35
25F:→ dryman:第九行 12/11 13:36
26F:→ ric2k1:其实我就是要印出内容来比较一下 (应该跟 by index 一样) 12/11 14:21
27F:→ ric2k1:不过像你建议印 address 也是不错的测试方式 12/11 14:21