﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-自娱自乐,自嘲自讽-随笔分类-失败的尝试</title><link>http://www.cppblog.com/zhaoyg/category/10454.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 08 May 2009 20:57:27 GMT</lastBuildDate><pubDate>Fri, 08 May 2009 20:57:27 GMT</pubDate><ttl>60</ttl><item><title>失败的代码 之 仿制的vector</title><link>http://www.cppblog.com/zhaoyg/archive/2009/05/08/82232.html</link><dc:creator>zhaoyg</dc:creator><author>zhaoyg</author><pubDate>Fri, 08 May 2009 07:13:00 GMT</pubDate><guid>http://www.cppblog.com/zhaoyg/archive/2009/05/08/82232.html</guid><wfw:comment>http://www.cppblog.com/zhaoyg/comments/82232.html</wfw:comment><comments>http://www.cppblog.com/zhaoyg/archive/2009/05/08/82232.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhaoyg/comments/commentRss/82232.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhaoyg/services/trackbacks/82232.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 10pt">SRC：<a title="my_vector - SRC" href="http://www.cppblog.com/Files/zhaoyg/my_vector-SRC.rar"><u><font color=#0000ff>my_vector - SRC</font></u></a><br><br>在写这段代码的过程中，遇见了&#8220;某些函数如何实现&#8221;这样的问题，于是就参考&lt;STL 源码剖析&gt;，说实话这本书虽然在硬盘里存在了好久，但直到此时才用上。其实在参考的时候也犹豫了，到底是应该完全按照自己的思路写，还是借鉴书上或他人的现有代码写，这种想法致使我当时还想顺带着连allocator类也一写，但最后的结果是借鉴并且放弃写allocator，理由是&#8220;一步步来&#8221;。</span> <br><br><font size=2>写完这些代码后，我初步得出这样的结论：模板很麻烦，迭代器很麻烦。模板只能看有关模板的书了，而对于迭代器，我起初的想法是能将自己写的容器兼容STL，但现在看来这很是一个天真的想法，因为我后来从论坛得知，STL中的各个模板间都是有类型依赖的，例如代码：<br>int a[]={3,4,6,3,87,654,3,9,8,1,9,10,51};<br>my_vector&lt;int&gt; test(a,a+13)；<br><br>sort( test.begin() ,&nbsp; test.end() );&nbsp; //&nbsp; OK!<br>sort( test.rbegin() ,&nbsp; test.rend() );&nbsp;&nbsp; //&nbsp; 编译错误，提示 "&#8220;iterator_category&#8221;: 不是&#8220;my_space::_R_Iterator&lt;Iter_type&gt;&#8221;的成员"<br><br>P.S. : my_space::_R_Iterator&lt;Iter_type&gt;是我自定义的逆序迭代器类<br><br>这就意味着，想写出兼容STL的东西，就必须先了解STL的内部。于是乎my_vector就只能自娱自乐了，除非我把整个STL都模仿出来或者想办法引入STL中的迭代器。</font><br><br><br><span style="FONT-SIZE: 10pt">P.S. :</span> <font size=2>my_vector类中的成员还有不少的问题尚未被发现</font> 
<img src ="http://www.cppblog.com/zhaoyg/aggbug/82232.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhaoyg/" target="_blank">zhaoyg</a> 2009-05-08 15:13 <a href="http://www.cppblog.com/zhaoyg/archive/2009/05/08/82232.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>失败的代码 之 简易代码缩排</title><link>http://www.cppblog.com/zhaoyg/archive/2009/05/07/82155.html</link><dc:creator>zhaoyg</dc:creator><author>zhaoyg</author><pubDate>Thu, 07 May 2009 06:53:00 GMT</pubDate><guid>http://www.cppblog.com/zhaoyg/archive/2009/05/07/82155.html</guid><wfw:comment>http://www.cppblog.com/zhaoyg/comments/82155.html</wfw:comment><comments>http://www.cppblog.com/zhaoyg/archive/2009/05/07/82155.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhaoyg/comments/commentRss/82155.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhaoyg/services/trackbacks/82155.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt">这个是我以前写的一段代码，当时是只是见论坛上有人上传了个他自己写的代码缩排小程序之后自己也想试试，于是写之。<br>源码见附件：<a title=Sourceformat_src href="http://www.cppblog.com/Files/zhaoyg/Sourceformat_src.rar">Sourceformat_src</a><br><br>起初是怀着极大的热情，但最后热情被事实无情的杂碎。这个东西太难写了，太复杂了，最后勉强写出一个雏形后不得不放弃。<br>而这个雏形也就是只能勉强的将这样的代码：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;stdio.h&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;main(){&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;a</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(a</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n&nbsp;adfa&nbsp;sdfe&nbsp;e\\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,a);<br></span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">){i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;()dkf;df;}&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">this&nbsp;is&nbsp;test&nbsp;file\n&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);&nbsp;&nbsp;<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">sdfadsfas&nbsp;asdf</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">jdh</span><span style="COLOR: #000000">&lt;&lt;=</span><span style="COLOR: #000000">78</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">t&nbsp;e&nbsp;s&nbsp;t&nbsp;***</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getchar();</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}</span></div>
<span style="FONT-SIZE: 10pt">缩排成：</span><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main&nbsp;(&nbsp;)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;a&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;a&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n&nbsp;adfa&nbsp;sdfe&nbsp;e\\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;,&nbsp;a&nbsp;)&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">&nbsp;;&nbsp;i&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dkf&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;df&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">this&nbsp;is&nbsp;test&nbsp;file\n&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">sdfadsfas&nbsp;asdf</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;jdh&nbsp;</span><span style="COLOR: #000000">&lt;&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">78</span><span style="COLOR: #000000">&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">t&nbsp;e&nbsp;s&nbsp;t&nbsp;***</span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;getchar&nbsp;(&nbsp;)&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<br><span style="FONT-SIZE: 10pt">因为是个雏形，于是问题也是很明显的，例如最后一个右花括号是不应当缩进的。<br>由于当时思路很乱，于是代码很乱，在于是现在的我已经完全看不懂我的代码了。</span> 
<img src ="http://www.cppblog.com/zhaoyg/aggbug/82155.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhaoyg/" target="_blank">zhaoyg</a> 2009-05-07 14:53 <a href="http://www.cppblog.com/zhaoyg/archive/2009/05/07/82155.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>