《C++ STL中文版》习题讨论之一,欢迎参与

babysloth 2002-05-21 04:04:44
欢迎大家讨论第1章的7道习题
有书的朋友,翻到那一页就可以了
没书的朋友……就快买一本吧^_^(ft,cber,我帮你做广告,给点报酬吧)

实在没买书的朋友,请见C++ View(http://www.c-view.org)第7期“鸟鸣涧”栏目或http://c-view.org/forum/index.htm

感谢中国电力出版社和译者王昕先生向C++ View提供了《C++ STL中文版》的习题。
由于出版社和译者并未同意传播习题,所以请大家尊重他们的意见,尽量买书,不要转贴,谢谢。由此给您带来的不便,非常抱歉。
...全文
106 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
lkcowboy 2002-10-05
  • 打赏
  • 举报
回复
gz
babysloth 2002-06-08
  • 打赏
  • 举报
回复
第2章下次再说吧,就第1章已经快玩死人了:-)
cppTrier 2002-06-01
  • 打赏
  • 举报
回复
只有人讨论第一章的题目?
第二章
2-4 如果不是看到这题,我还真不可能想到有这种情况。答案应该是当operator ==被重载了之后吧?

2-2 是让用两个pair嵌套吗?效果好像不怎么好。
anrxhzh 2002-05-28
  • 打赏
  • 举报
回复
3.由于是"Readonly" RandomAdaptor,所以*i返回的应该是ReadonlyWrapper<T>,而不是T。

这个条件的确是多余的。因为*i返回的是T,而不是T&,所以不存在Readonly的问题。但是一定要禁止*i=t这样的表达式,这是大家都忽略的一点。






TYmir 2002-05-28
  • 打赏
  • 举报
回复
那本STL看介绍不错。就是不知道翻译的怎么样?
babysloth 2002-05-28
  • 打赏
  • 举报
回复
hoho,要骂找cber,别赖我头上哦^_^

2 cber
小心鸡蛋……
code_cold 2002-05-28
  • 打赏
  • 举报
回复
受 babysloth (小懒虫虫) 鼓动

定了一本,希望明天看时,不是太差

同时 侯 也出了一本STL的书,有的比了
不解 2002-05-28
  • 打赏
  • 举报
回复
where can I find the elec_book?
不解 2002-05-28
  • 打赏
  • 举报
回复
tanks !
cber 2002-05-27
  • 打赏
  • 举报
回复
to anxhzh:
使用memcpy的本意是:InputIterator是不需要强制拥有copy ctor的,而我们先前所设想的做法一定需要一个clone,所以才会去使用memcpy来作为一个workaround。

你后面所提供的解法感觉有点奇怪,好像太复杂了^_^
anrxhzh 2002-05-27
  • 打赏
  • 举报
回复
我想到了一个方法,不过可能有点跑题了:-)
1.假设InputIterator来自容器C<T>,我们可以将其改造为C<HeapWrapper<T>>。HeapWrapper对InputIterator来说是透明的,它的功能是强迫T在堆上创建。
2.假设解为ReadonlyRandomAdaptor<InputIterator>(注意此时*i为HeapWrapper<T>,而不是T),HeapWrapper<T>是有拷贝构造函数的(实际上HeapWrapper保存的是*T),所以HeapWrapper<T>是可克隆的,那么一切就迎刃而解了。
3.由于是"Readonly" RandomAdaptor,所以*i返回的应该是ReadonlyWrapper<T>,而不是T。
综上所述,除了克隆技术外,我们还需要实现HeapWrapper和ReadonlyWrapper。
SnowFalcon 2002-05-27
  • 打赏
  • 举报
回复
??
也许把。可是当然最好的办法就是不用copy。
可是这如何去做呢?
Fermat theorem ?
不会把!
anrxhzh 2002-05-27
  • 打赏
  • 举报
回复
我觉得习题的目的不是追求一个答案,而是搞清楚一些概念。即使做错了,如果能有所收获,可能比做对了更有价值,因为前者增加了新的知识,后者只是检验了旧的知识。memcpy肯定是不能代替copy construct的,这是一个基本原则。有太多的例子可以证明这一原则,cber肯定对此心知肚名,不用我列举了。希望不要为了作题把初学者搞糊涂了,那就得不偿失了。
SnowFalcon 2002-05-27
  • 打赏
  • 举报
回复
haha
memecpy
wowo好主义
cber 2002-05-27
  • 打赏
  • 举报
回复
to anrxhzh:
其实T也可以不需要有copy ctor,我们可以用memcpy来搞定这件事情(因为我们只是需要一个它的备份而已,其他的可以不用去管)^_^
anrxhzh 2002-05-27
  • 打赏
  • 举报
回复
大家都采用了克隆的方案。这个方案的复杂度为o(n),当n小于任意一个曾访问过的下标时,复杂度为o(1)。
我下的另一个结论:T必须有拷贝构造函数,或者存在类似的Clone()成员函数。然否?
babysloth 2002-05-25
  • 打赏
  • 举报
回复
在自己没想明白或无法理解的时候,请不要过于草率,随便下结论。这道题目没错。
flywind999999 2002-05-25
  • 打赏
  • 举报
回复
只支持+=n(n>=0),怎么的上称随机迭代器呢?
题目是错的。并非任何功能都可以使用缓冲区,
如果在一个交互式的程序中,如何使用缓冲保存已经输出的数据?
实时环境中也不允许。
huxw 2002-05-25
  • 打赏
  • 举报
回复
郁闷,为什么csdn不能改文章,随手写错了的说。

$(-\inf,\inf)$
huxw 2002-05-25
  • 打赏
  • 举报
回复
我同意恶魔的意见。流概念上是$(-\inf\rightarrow\info)$的东西,不是一个缓冲可以能解决的。
加载更多回复(23)

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧