作者johnjohnlin (LYSin8)
看板EE_DSnP
标题[请益] HW5 的资料是要随时保持 sorted 的吗?
时间Fri Dec 3 00:36:45 2010
嗯...根据我在上课听到的内容好像是要
作业中也有这句话
void pop_back(): remove the
last (largest) element in the ADT
之类的
大致来讲是没问题
可是我有一点小疑问
就是 TODO 里面有要作这件事
T& operator [] (size_t i) {}
这样来说的话
如果
Array<int> a;
for (blahblah)
a.insert (rand ());
到这还能保持 properly ordered
可是
如果我随便 assign
a[3] = -1;
顺序不就马上乱掉了?
而且这是 class 无法管理到的行为
又不太可能一直去作 check...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.243.89
1F:推 ric2k1:Uh, 这的确是 Array class 设计上的疏失... 为了保持资料 12/03 06:31
2F:→ ric2k1:都是 sorted, 应该不能有像是 push_back(), push_front() 12/03 06:31
3F:→ ric2k1:以及 operator [] 等动作. 不过还好 adtTest.* 里头没有 12/03 06:32
4F:→ ric2k1:将 operator 用在 left hand side 的情形...所以不会有问题 12/03 06:33
5F:→ ric2k1:大家可以假设 operator [] 不会用在 LHS, 以後我再来修正 12/03 06:34
6F:→ ric2k1:这个 spec! 12/03 06:34
7F:推 wintercobra:像是DList里面有insert(T& x),但是要insert在哪里呢? 12/04 15:13
8F:→ wintercobra:因为跟真正的STL用法不太一样,不知道该把insert()写成 12/04 15:14
9F:→ wintercobra:push_front(),push_back(),还是...? 12/04 15:15
10F:→ wintercobra:还是...要同时sort好? 12/04 15:30
11F:推 aitjcize:似乎是要sort好喔 12/04 15:34
12F:推 wintercobra:但T是个未定型态,要如何sort?(比方说T=某class A) 12/04 15:57
13F:推 stimim:你可以假设T这个型态有 < 和== 运算子可以用 12/04 16:10
14F:推 ric2k1:嗯,你可以直接用 < 或/与 == 等operators来比较资料的大小 12/04 16:27
15F:推 TommyKSHS:其实还可以 cout << 它 … (我这样算不算泄露机密 = = 12/04 17:01
16F:推 concise:为什麽认为这是机密 = = 12/04 18:44
17F:推 TommyKSHS:因为 spec 没有说阿 噗噗 12/04 19:10
18F:推 wintercobra:哈,了了,谢谢 12/04 21:06
19F:推 TommyKSHS:囧 刚刚才发现 原来 adtTest.cpp 还有 adtTest.h 是 12/05 19:58
20F:→ TommyKSHS:附在 main 资料几里的 … 之前花了好多时间用 gdb 看= = 12/05 19:59