<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
<title>Yahoo!奇摩知識+ C/C++程式語言討論研究</title>
<link>http://tw.group.knowledge.yahoo.com/c-plusplus/article</link>
<description></description>
<language></language>
<lastBuildDate>Tue, 28 Apr 2009 12:04:26 CST</lastBuildDate>
<image>
 <url>http://tw.f14.yahoofs.com/ks/c-plusplus//logo.jpg?ksAOHDLB0x1emHiY</url>
 <title>C/C++程式語言討論研究</title>
 <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article</link>
</image>
 <item>
  <category>電腦網路|程式設計|C&C++</category>
  <author>喵喵咪</author>
  <title>sort list by swap point</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=16</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=16</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 0 &amp;nbsp; 回應: 0 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;#include &lt;br&gt;#include &lt;br&gt;#include &lt;br&gt;struct Node&lt;br&gt;{&lt;br&gt;    int m_nData;&lt;br&gt;    Node *m_pNext;&lt;br&gt;    Node(int a_nData=0) : m_pNext(NULL),m_nData(a_nData) {}&lt;br&gt;};&lt;br&gt;&lt;br&gt;class List&lt;br&gt;{&lt;br&gt;public :&lt;br&gt;    List() : m_pHead(NULL),m_pTail(NULL),m_nSize(0) {}&lt;br&gt;    ~List();&lt;br&gt;    bool add(int a_nData); // add one data&lt;br&gt;    void sort();        // sort me &lt;br&gt;    void clean();        // clean all data &lt;br&gt;    void display(std::ostream&amp; a_oOut=std::cout) const;   // display me &lt;br&gt;    bool empty();        // is empty&lt;br&gt;    size_t size() const // how many data in list&lt;br&gt;    { return m_nSize; }&lt;br&gt;private:&lt;br&gt;    Node *m_pHead;   // 頭&lt;br&gt;    Node *m_pTail;   // 尾&lt;br&gt;    unsigned m_nSize;&lt;br&gt;    // 交換 a_pPrvNext 指向的node 跟此node 的下一個node&lt;br&gt;    void NodeSwap(Node*&amp; a_pPrvNext);&lt;br&gt;};&lt;br&gt;&lt;br&gt;List::~List()&lt;br&gt;{&lt;br&gt;    clean();&lt;br&gt;}&lt;br&gt;&lt;br&gt;bool List::empty()&lt;br&gt;{&lt;br&gt;    if( m_pHead == NULL ) return true;&lt;br&gt;    else return false;&lt;br&gt;}&lt;br&gt;&lt;br&gt;void List::clean()&lt;br&gt;{&lt;br&gt;    Node *pCurrent=m_pHead;&lt;br&gt;    while( pCurrent!= NULL )&lt;br&gt;    {&lt;br&gt;        Node *pTemp=pCurrent;&lt;br&gt;        pCurrent=pCurrent-&gt;m_pNext;&lt;br&gt;        delete pTemp;&lt;br&gt;    }&lt;br&gt;    m_pHead=m_pTail=NULL;&lt;br&gt;    m_nSize=0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;bool List::add(int a_nData)&lt;br&gt;{&lt;br&gt;    if( m_pHead == NULL )&lt;br&gt;    {&lt;br&gt;        m_pHead=new Node(a_nData);&lt;br&gt;        m_pTail=m_pHead;&lt;br&gt;    }&lt;br&gt;    else&lt;br&gt;    {&lt;br&gt;        Node *pTemp=new Node(a_nData);&lt;br&gt;        m_pTail-&gt;m_pNext=pTemp;&lt;br&gt;        m_pTail=pTemp;&lt;br&gt;    }&lt;br&gt;    ++m_nSize;&lt;br&gt;    return true;&lt;br&gt;}&lt;br&gt;&lt;br&gt;void List::sort()&lt;br&gt;{&lt;br&gt;    unsigned i;&lt;br&gt;    if( empty() ) return;&lt;br&gt;    for( i = 0 ; i &lt; m_nSize-1 ; ++i )&lt;br&gt;    {&lt;br&gt;        unsigned j;&lt;br&gt;        Node **p=&amp;m_pHead;&lt;br&gt;        for( j = 0 ; j &lt; m_nSize-i-1 ; ++j )&lt;br&gt;        {&lt;br&gt;            if( (*p)-&gt;m_nData &gt; (*p)-&gt;m_pNext-&gt;m_nData ) // 跟下一個data 比較. 如下一個比較小, 交換&lt;br&gt;            {&lt;br&gt;                NodeSwap(*p);&lt;br&gt;            }&lt;br&gt;            p=&amp;((*p)-&gt;m_pNext);&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;br&gt;// 把a_pC 跟a_pPrv 交換, node a_pPrv 必須是a_pC 的前一個&lt;br&gt;void List::NodeSwap(Node*&amp; a_pPrvNext)&lt;br&gt;{&lt;br&gt;    Node* pC=a_pPrvNext;&lt;br&gt;        &lt;br&gt;    if( pC == m_pTail )&lt;br&gt;    {&lt;br&gt;        return ; // 不能交換&lt;br&gt;    }&lt;br&gt;    &lt;br&gt;    a_pPrvNext=pC-&gt;m_pNext;&lt;br&gt;    Node *pNextNext=pC-&gt;m_pNext-&gt;m_pNext;&lt;br&gt;    if( pC-&gt;m_pNext == m_pTail )&lt;br&gt;    {&lt;br&gt;        m_pTail=pC;&lt;br&gt;    }&lt;br&gt;    pC-&gt;m_pNext-&gt;m_pNext=pC;&lt;br&gt;    pC-&gt;m_pNext=pNextNext;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;void List::display(std::ostream&amp; a_oOut) const&lt;br&gt;{&lt;br&gt;    if( m_pHead == NULL )&lt;br&gt;    {&lt;br&gt;        a_oOut &lt;&lt; "Empty " &lt;&lt; std::endl;&lt;br&gt;    }&lt;br&gt;    else&lt;br&gt;    {&lt;br&gt;        a_oOut &lt;&lt; "Total : "&lt;&lt; m_nSize &lt;&lt; std::endl;&lt;br&gt;        Node *pCurrent=m_pHead;&lt;br&gt;        while( pCurrent )&lt;br&gt;        {&lt;br&gt;            a_oOut &lt;&lt; pCurrent-&gt;m_nData &lt;&lt; std::endl;&lt;br&gt;            pCurrent=pCurrent-&gt;m_pNext;&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;&lt;br&gt;int main(int argc, _TCHAR* argv[])&lt;br&gt;{&lt;br&gt;    List a;&lt;br&gt;    a.add(5);&lt;br&gt;    a.add(4);&lt;br&gt;    a.add(3);&lt;br&gt;    a.add(2);&lt;br&gt;    a.add(1);&lt;br&gt;    a.display();&lt;br&gt;    a.sort();&lt;br&gt;    a.display();&lt;br&gt;    &lt;br&gt;    return 0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Tue, 28 Apr 2009 12:04:26 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|程式設計|C&C++</category>
  <author>喵喵咪</author>
  <title>簡單字串 class</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=15</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=15</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 0 &amp;nbsp; 回應: 0 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;這只是一個簡單的字串class&lt;br&gt;只有必要的member function&lt;br&gt;跟過載 operator+  operator+=&lt;br&gt;&lt;br&gt;&lt;strong&gt;file name : sstring.h&lt;/strong&gt;&lt;br&gt;&lt;br&gt;// compiler : vc++ 6.0&lt;br&gt;// date     : 2008/11/14&lt;br&gt;// sample string&lt;br&gt;// only have += operator , + operator&lt;br&gt;&lt;br&gt;&lt;br&gt;#ifndef _SString_H_&lt;br&gt;#define _SString_H_&lt;br&gt;&lt;br&gt;#include "iostream"&lt;br&gt;#include "stdlib.h"   // 會掉字 所以用 "&lt;br&gt;&lt;br&gt;class SString&lt;br&gt;{&lt;br&gt;public:&lt;br&gt;&lt;span style="color:rgb(255, 0, 127);"&gt;    SString();   // default construct&lt;/span&gt;&lt;br style="color:rgb(255, 0, 127);"&gt;&lt;span style="color:rgb(255, 0, 127);"&gt;    SString(const SString&amp; a_strR); // copy construct&lt;/span&gt;&lt;br&gt;    SString(const char* a_zR);  //轉換C style 的construct&lt;br&gt;&lt;span style="color:rgb(255, 0, 127);"&gt;    ~SString(); // destruct   &lt;/span&gt; &lt;br&gt;&lt;br&gt;    void Swap(SString&amp; a_strR); // 將兩個字串交換&lt;br&gt;&lt;br&gt;    SString&amp; operator+=(const SString&amp; a_strR);&lt;br&gt;    const char* CStr() const;  // 轉換成C style 的字串&lt;br&gt;   &lt;span style="color:rgb(255, 0, 127);"&gt; SString&amp; operator=(const SString&amp; a_strR);&lt;/span&gt;&lt;br&gt;private:&lt;br&gt;    SString(size_t n); // construnct and alloc n size, don't for user use&lt;br&gt;    char *m_zStr;&lt;br&gt;    size_t  m_nLen;&lt;br&gt;};&lt;br&gt;&lt;span style="color:rgb(255, 0, 127);"&gt;// 紅色部份為一定要寫的member function 否則程式一定會不正常&lt;/span&gt;&lt;br&gt;&lt;br&gt;// 兩字串相加&lt;br&gt;inline SString operator+(const SString&amp; a_strL,const SString&amp; a_strR)&lt;br&gt;{&lt;br&gt;    SString strTmp(a_strL);&lt;br&gt;    strTmp+=a_strR;&lt;br&gt;    return strTmp;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;inline std::ostream&amp; operator&lt;&lt;(std::ostream&amp; o,const SString r)&lt;br&gt;{&lt;br&gt;    o&lt;&lt; r.CStr();&lt;br&gt;    return o;&lt;br&gt;}&lt;br&gt;&lt;br&gt;#endif // of _SString_H_&lt;br&gt;&lt;br&gt;&lt;strong&gt;file name : sstring.cpp&lt;/strong&gt;&lt;br&gt;&lt;br&gt;#include "iostream"&lt;br&gt;#include "sstring.h"&lt;br&gt;#include "string.h"&lt;br&gt;&lt;br&gt;SString::SString() : m_zStr(new char[1]),m_nLen(0)   // default construct&lt;br&gt;{ &lt;br&gt;    m_zStr[0]=NULL;&lt;br&gt;}&lt;br&gt;&lt;br&gt;SString::SString(const SString&amp; a_strR) // copy construct&lt;br&gt;{&lt;br&gt;    m_nLen=a_strR.m_nLen;&lt;br&gt;    m_zStr=new char[m_nLen+1];&lt;br&gt;    memcpy(m_zStr,a_strR.m_zStr,m_nLen+1);&lt;br&gt;}&lt;br&gt;&lt;br&gt;SString::SString(const char* a_zR)  //轉換C style 的construct&lt;br&gt;{&lt;br&gt;    m_nLen=strlen(a_zR);&lt;br&gt;    m_zStr=new char[m_nLen+1];&lt;br&gt;    memcpy(m_zStr,a_zR,m_nLen+1);&lt;br&gt;}&lt;br&gt;&lt;br&gt;SString::SString(size_t n) // construnct and alloc n size, don't for user use&lt;br&gt;{&lt;br&gt;    m_nLen=n;&lt;br&gt;    m_zStr=new char[n+1];&lt;br&gt;    m_zStr[0]=NULL;&lt;br&gt;}&lt;br&gt;&lt;br&gt;SString::~SString() // destruct    &lt;br&gt;{&lt;br&gt;    delete [] m_zStr;&lt;br&gt;    m_zStr=NULL;&lt;br&gt;    m_nLen=0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;void SString::Swap(SString&amp; a_strR) // 將兩個字串交換&lt;br&gt;{&lt;br&gt;    size_t nT=a_strR.m_nLen;&lt;br&gt;    char* zT=a_strR.m_zStr;&lt;br&gt;    a_strR.m_nLen=m_nLen;&lt;br&gt;    a_strR.m_zStr=m_zStr;&lt;br&gt;    m_nLen=nT;&lt;br&gt;    m_zStr=zT;&lt;br&gt;}&lt;br&gt;&lt;br&gt;SString&amp; SString::operator+=(const SString&amp; a_strR)&lt;br&gt;{&lt;br&gt;    SString strT(m_nLen+a_strR.m_nLen);&lt;br&gt;    memcpy(strT.m_zStr,m_zStr,m_nLen);&lt;br&gt;    memcpy(strT.m_zStr+m_nLen,a_strR.m_zStr,a_strR.m_nLen+1);&lt;br&gt;    strT.Swap(*this);&lt;br&gt;    return *this;&lt;br&gt;}&lt;br&gt;&lt;br&gt;const char* SString::CStr() const&lt;br&gt;{&lt;br&gt;    return m_zStr;&lt;br&gt;}&lt;br&gt;&lt;br&gt;SString&amp; SString::operator=(const SString&amp; a_strR)&lt;br&gt;{&lt;br&gt;    SString oTmp(a_strR);&lt;br&gt;    oTmp.Swap(*this);&lt;br&gt;&lt;br&gt;    return *this;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;strong&gt;file name : main.cpp  // test code&lt;/strong&gt;&lt;br&gt;&lt;br&gt;#include "iostream"&lt;br&gt; #include "sstring.h"&lt;br&gt;&lt;br&gt;int main(int argc,char argv[])&lt;br&gt;{&lt;br&gt;    SString a="2000";&lt;br&gt;    SString b="1000";&lt;br&gt;    SString c;&lt;br&gt;    c=c;&lt;br&gt;    c+=a;&lt;br&gt;    c+=c;&lt;br&gt;    c+=b;    &lt;br&gt;    &lt;br&gt;    std::cout &lt;&lt; c &lt;&lt; std::endl;&lt;br&gt;    std::cout &lt;&lt; (b+a);&lt;br&gt;    return 0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Fri, 14 Nov 2008 15:11:15 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|程式設計|C&C++</category>
  <author>喵喵咪</author>
  <title>給初學者學C/C++ 的好書</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=14</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=14</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 4 &amp;nbsp; 回應: 3 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;書名 : &lt;font size="3"&gt;超上手300好題教您學會C/C++&lt;br&gt;ISBN : &lt;/font&gt;957201191X&lt;br&gt;作者：&lt;a rel="nofollow" target="_blank" href="http://findbook.tw/search?keyword_type=author&amp;q=%E9%99%B3%E9%8C%A6%E8%BC%9D"&gt;陳錦輝&lt;/a&gt;&lt;span style="text-decoration:underline;"&gt;&lt;br&gt;&lt;/span&gt; 出版社：金禾&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://findbook.tw/book/9789572011911/basic"&gt;參考網址介紹&lt;/a&gt;&lt;br&gt;&lt;br&gt;此本書適合以學過基本C/C++ 語法的初學者. 也適合學了超過1年以上經常寫C/C++ 程試的人進階.&lt;br&gt;&lt;br&gt;雖然書中的範例都很短. 但是指出了重點. 有些範例也說出一般人會犯的錯誤. &lt;br&gt;舉個利子&lt;br&gt;&lt;br&gt;int* Fun()&lt;br&gt;{&lt;br&gt;   int x;&lt;br&gt;   .....&lt;br&gt;   return &amp;x;&lt;br&gt;}&lt;br&gt;&lt;br&gt;書中就有說明這樣的程式是有bug的. 為什麼有bug. 怎麼改善. &lt;br&gt;個人買了一本. 我也很強烈建議初學者買來看看.&lt;br&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-10-27 13:32:50 補充&lt;/ins&gt;
       &lt;div class="content"&gt;剛剛查了一些網路書店.發現此書以絕版.真是可惜&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Mon, 27 Oct 2008 09:10:41 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|程式設計|C&C++</category>
  <author>喵喵咪</author>
  <title>網路上的學C/C++</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=13</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=13</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 1 &amp;nbsp; 回應: 1 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;JSLiu 寫的&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://jsliu.no-ip.info/DOC/CLANG/"&gt;http://jsliu.no-ip.info/DOC/CLANG/&lt;/a&gt;&lt;br&gt;C++ 學習筆記&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://caterpillar.onlyfun.net/Gossip/CppGossip/CppGossip.html"&gt;http://caterpillar.onlyfun.net/Gossip/CppGossip/CppGossip.html&lt;/a&gt;&lt;br&gt;深度學習C++&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://www.math.ncu.edu.tw/%7Eziyou/c++/"&gt;http://www.math.ncu.edu.tw/~ziyou/c++/          &lt;/a&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-10-27 13:32:50 補充&lt;/ins&gt;
       &lt;div class="content"&gt;剛剛查了一些網路書店.發現此書以絕版.真是可惜&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Wed, 22 Oct 2008 09:10:19 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|網頁製作|網站架設</category>
  <author>喵喵咪</author>
  <title>網路上的學C/C++</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=12</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=12</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 0 &amp;nbsp; 回應: 0 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;JSLiu 寫的&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://jsliu.no-ip.info/DOC/CLANG/"&gt;http://jsliu.no-ip.info/DOC/CLANG/&lt;/a&gt;&lt;br&gt;C++ 學習筆記&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://caterpillar.onlyfun.net/Gossip/CppGossip/CppGossip.html"&gt;http://caterpillar.onlyfun.net/Gossip/CppGossip/CppGossip.html&lt;/a&gt;&lt;br&gt;深度學習C++&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://www.math.ncu.edu.tw/%7Eziyou/c++/"&gt;http://www.math.ncu.edu.tw/~ziyou/c++/          &lt;/a&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-10-27 13:32:50 補充&lt;/ins&gt;
       &lt;div class="content"&gt;剛剛查了一些網路書店.發現此書以絕版.真是可惜&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Wed, 22 Oct 2008 09:10:47 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|程式設計|C&C++</category>
  <author>喵喵咪</author>
  <title>C/C++ 中未定義的行為</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=11</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=11</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 1 &amp;nbsp; 回應: 2 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;也就是一大串 ++i i++ 混在一起寫&lt;br&gt;篇篇很多老師愛考這樣的題目.&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://blog.ez2learn.com/2008/09/27/evil-undefined-behavior/"&gt;請參考此link&lt;/a&gt;&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://en.wikipedia.org/wiki/Nasal_demon"&gt;wiki 說明&lt;/a&gt;&lt;br&gt;&lt;br&gt;請老師不要在傷害學生. 考這類的題目把.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-10-27 13:32:50 補充&lt;/ins&gt;
       &lt;div class="content"&gt;剛剛查了一些網路書店.發現此書以絕版.真是可惜&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Wed, 8 Oct 2008 10:10:33 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|程式設計|C&C++</category>
  <author>喵喵咪</author>
  <title>mobile01 上討論程式</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=10</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=10</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 0 &amp;nbsp; 回應: 0 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;這題程式也在yahoo 知識+出現 &lt;br&gt;moblie 01 的討論. 感覺比在知識+ 好太多了&lt;br&gt;最主要還是問的人的回應讓別的討論者想參與討論. 給於更多好的建議&lt;br&gt;&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://www.mobile01.com/topicdetail.php?f=300&amp;t=793758&amp;last=8440781"&gt;mobile01 的link&lt;/a&gt;&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://tw.knowledge.yahoo.com/question/question?qid=1508100204540"&gt;知識+的討論&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-10-27 13:32:50 補充&lt;/ins&gt;
       &lt;div class="content"&gt;剛剛查了一些網路書店.發現此書以絕版.真是可惜&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Mon, 6 Oct 2008 09:10:08 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|程式設計|C&C++</category>
  <author>喵喵咪</author>
  <title>link list  使用array 來設計</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=9</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=9</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 0 &amp;nbsp; 回應: 0 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;利用一開始就產生一個固定大小的空間來設計一個link list&lt;br&gt;&lt;br&gt;&lt;strong&gt;filename : ArrayLink.h&lt;/strong&gt;&lt;br&gt;#include &lt;br&gt;#include &lt;br&gt;#include &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;template&lt;br&gt;struct ARNode&lt;br&gt;{&lt;br&gt;    T m_oData;&lt;br&gt;    unsigned m_nNext;  // next &lt;br&gt;};&lt;br&gt;&lt;br&gt;&lt;br&gt;template&lt;br&gt;class ArrayLink&lt;br&gt;{&lt;br&gt;public:&lt;br&gt;    typedef ARNode NodeT;&lt;br&gt;    enum { LNULL=~0 };&lt;br&gt;    &lt;br&gt;    ArrayLink() : &lt;br&gt;        m_pNodePool(NULL)&lt;br&gt;    {&lt;br&gt;        m_pNodePool = new NodeT[nSize];&lt;br&gt;        m_nNextEmpty=0;&lt;br&gt;        m_nStart=LNULL;&lt;br&gt;        m_nEnd=LNULL;&lt;br&gt;        for( unsigned i = 0 ; i &lt; nSize-1 ; ++i)&lt;br&gt;            m_pNodePool[i].m_nNext=i+1;&lt;br&gt;        m_pNodePool[nSize-1].m_nNext=LNULL;&lt;br&gt;    }&lt;br&gt;    ~ArrayLink()&lt;br&gt;    {&lt;br&gt;        delete [] m_pNodePool;&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    bool Add(const T&amp; a_oData)&lt;br&gt;    {&lt;br&gt;        if( m_nNextEmpty == LNULL ) return false;   // no empty slot&lt;br&gt;        if( m_nStart == LNULL )&lt;br&gt;        {&lt;br&gt;            m_nStart=m_nEnd=m_nNextEmpty;&lt;br&gt;            m_nNextEmpty=m_pNodePool[m_nNextEmpty].m_nNext;&lt;br&gt;            m_pNodePool[m_nEnd].m_nNext=LNULL;&lt;br&gt;            m_pNodePool[m_nEnd].m_oData=a_oData;&lt;br&gt;        }&lt;br&gt;        else&lt;br&gt;        {&lt;br&gt;            m_pNodePool[m_nEnd].m_nNext=m_nNextEmpty;&lt;br&gt;            m_nEnd=m_nNextEmpty;&lt;br&gt;            m_nNextEmpty=m_pNodePool[m_nNextEmpty].m_nNext;&lt;br&gt;            m_pNodePool[m_nEnd].m_nNext=LNULL;&lt;br&gt;            m_pNodePool[m_nEnd].m_oData=a_oData;&lt;br&gt;        }&lt;br&gt;        return true;&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    bool Delete(unsigned a_nPos,unsigned a_nPrvPos)&lt;br&gt;    {&lt;br&gt;        if( IsEmpty() ) return false;   // empty&lt;br&gt;        if( a_nPrvPos == LNULL ) &lt;br&gt;        {&lt;br&gt;            if( a_nPos != m_nStart ) return false;&lt;br&gt;            m_nStart=m_pNodePool[m_nStart].m_nNext;&lt;br&gt;            m_pNodePool[a_nPos].m_nNext=m_nNextEmpty;&lt;br&gt;            m_nNextEmpty=a_nPos;&lt;br&gt;            return true;&lt;br&gt;        }&lt;br&gt;        &lt;br&gt;        if( m_pNodePool[a_nPrvPos].m_nNext != a_nPos ) return false; // Prv 的下一個不是 a_nPos 表示有問題&lt;br&gt;        m_pNodePool[a_nPrvPos].m_nNext=m_pNodePool[a_nPos].m_nNext;&lt;br&gt;        m_pNodePool[a_nPos].m_nNext=m_nNextEmpty;&lt;br&gt;        m_nNextEmpty=a_nPos;&lt;br&gt;        if( a_nPos == m_nEnd ) m_nEnd=a_nPrvPos;&lt;br&gt;        return true;&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    bool Delete(unsigned a_nPos)&lt;br&gt;    {&lt;br&gt;        if( IsEmpty() ) return false;  // empty&lt;br&gt;        // search a_nPos 的前一個node&lt;br&gt;        if( a_nPos == m_nStart )&lt;br&gt;        {&lt;br&gt;            m_nStart=m_pNodePool[m_nStart].m_nNext;&lt;br&gt;            m_pNodePool[a_nPos].m_nNext=m_nNextEmpty;&lt;br&gt;            m_nNextEmpty=a_nPos;&lt;br&gt;            return true;&lt;br&gt;        }&lt;br&gt;        unsigned nPrvPos=m_nStart;&lt;br&gt;        while( m_pNodePool[nPrvPos].m_nNext != LNULL )&lt;br&gt;        {&lt;br&gt;            if( m_pNodePool[nPrvPos].m_nNext == a_nPos )&lt;br&gt;            {&lt;br&gt;                return Delete(a_nPos,nPrvPos);&lt;br&gt;            }&lt;br&gt;            nPrvPos=m_pNodePool[nPrvPos].m_nNext;&lt;br&gt;        }&lt;br&gt;        return false; // 找不到&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    unsigned GetFastPos() const&lt;br&gt;    {&lt;br&gt;        return m_nStart;&lt;br&gt;    }&lt;br&gt;    // 下一個位置&lt;br&gt;    unsigned NextPos(unsigned a_nPos) const&lt;br&gt;    {&lt;br&gt;        return m_pNodePool[a_nPos].m_nNext;&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    bool IsEmpty() const&lt;br&gt;    { return m_nStart == LNULL; }&lt;br&gt;&lt;br&gt;&lt;br&gt;    T&amp; GetData(unsigned a_nPos)&lt;br&gt;    {&lt;br&gt;        assert(a_nPos &lt; nSize);&lt;br&gt;        return m_pNodePool[a_nPos].m_oData;&lt;br&gt;    }&lt;br&gt;    const T&amp; GetData(unsigned a_nPos) const&lt;br&gt;    {&lt;br&gt;        assert(a_nPos &lt; nSize);&lt;br&gt;        return m_pNodePool[a_nPos].m_oData;&lt;br&gt;    }&lt;br&gt;private:&lt;br&gt;    &lt;br&gt;    NodeT *m_pNodePool;&lt;br&gt;    unsigned m_nNextEmpty;   // 下一個空的位置&lt;br&gt;    unsigned m_nStart;       // list start index&lt;br&gt;    unsigned m_nEnd;&lt;br&gt;};&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;strong&gt;filename :  ArrayLink.cpp  (only for test)&lt;/strong&gt;&lt;br&gt;#include "arraylink.h"&lt;br&gt;#include &lt;br&gt;&lt;br&gt;void Print(const ArrayLink &amp; aaa)&lt;br&gt;{&lt;br&gt;    unsigned nPOS=aaa.GetFastPos();&lt;br&gt;&lt;br&gt;    for( ; nPOS != ArrayLink ::LNULL ; nPOS=aaa.NextPos(nPOS) )&lt;br&gt;    {&lt;br&gt;        printf("%d ",aaa.GetData(nPOS));&lt;br&gt;    }&lt;br&gt;    printf("\n");&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;int main()&lt;br&gt;{&lt;br&gt;    ArrayLink aaa;&lt;br&gt;    aaa.Add(100);&lt;br&gt;    aaa.Add(101);&lt;br&gt;    aaa.Add(102);&lt;br&gt;    &lt;br&gt;    Print(aaa);&lt;br&gt;&lt;br&gt;    unsigned nPOS=aaa.GetFastPos();&lt;br&gt;    aaa.Delete(nPOS);&lt;br&gt;    Print(aaa);&lt;br&gt;&lt;br&gt;    aaa.Add(103);&lt;br&gt;    Print(aaa);&lt;br&gt;    nPOS=aaa.GetFastPos();&lt;br&gt;    unsigned nPRV=nPOS;&lt;br&gt;    nPOS=aaa.NextPos(nPRV);&lt;br&gt;    nPRV=nPOS;&lt;br&gt;    nPOS=aaa.NextPos(nPRV);&lt;br&gt;    &lt;br&gt;    aaa.Delete(nPOS,nPRV);&lt;br&gt;    Print(aaa);&lt;br&gt;    aaa.Add(104);&lt;br&gt;    Print(aaa);&lt;br&gt;    aaa.Add(104);&lt;br&gt;    Print(aaa);&lt;br&gt;&lt;br&gt;    for( unsigned i = 0 ; i &lt; 100 ; ++i )&lt;br&gt;        aaa.Add(i);&lt;br&gt;    Print(aaa);&lt;br&gt;    nPRV=nPOS=aaa.GetFastPos();&lt;br&gt;    for( i = 0 ; i &lt; 40 ; ++i)&lt;br&gt;    {&lt;br&gt;        nPRV=nPOS;&lt;br&gt;        nPOS=aaa.NextPos(nPRV);&lt;br&gt;&lt;br&gt;    }&lt;br&gt;    aaa.Delete(nPOS,nPRV);&lt;br&gt;    Print(aaa);&lt;br&gt;&lt;br&gt;    aaa.Add(9999);&lt;br&gt;    Print(aaa);&lt;br&gt;    return 0;&lt;br&gt;}&lt;br&gt;&lt;br&gt;為什麼要用Array 來設計.&lt;br&gt;原因&lt;br&gt;1. 必免每次產生一個新的node 都要跟系統要一個空間&lt;br&gt;2. 當然刪除也不需要free 一個空間&lt;br&gt;3. 必須有linker list 特性的用法時&lt;br&gt;4. IPC 使用share memory 可以比較容易共享此linker list&lt;br&gt;缺點&lt;br&gt;link list 的大小被固定住. 且一開始就要了一塊空間. 浪費memory&lt;br&gt;&lt;br&gt;&lt;br&gt;進接挑戰&lt;br&gt;1. 設計一個此link list 的iterator &lt;br&gt;2. 改 STL 的 allocator 來達到一樣的功能&lt;br&gt;&lt;br&gt;可惡字又被cute 掉了&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://jsliu.no-ip.info/phpbb2/viewtopic.php?p=208#208"&gt;請參考&lt;/a&gt;&lt;br&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-10-27 13:32:50 補充&lt;/ins&gt;
       &lt;div class="content"&gt;剛剛查了一些網路書店.發現此書以絕版.真是可惜&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Tue, 30 Sep 2008 09:09:04 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|網際網路|網路社群</category>
  <author>喵喵咪</author>
  <title>團員加入原因</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=8</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=8</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 0 &amp;nbsp; 回應: 4 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;團員都是我邀請的&lt;br&gt;有幾個原因寫的很有趣也很有意思&lt;br&gt;留下來分享給個位. 希望不會有人在意&lt;br&gt;&lt;br&gt;&lt;a rel="nofollow" title="blocked::http://tw.knowledge.yahoo.com/my/my?show=AE03378160" style="color:rgb(209, 42, 0);margin-right:4px;" target="_blank" href="http://tw.knowledge.yahoo.com/my/my?show=AE03378160"&gt;Inunu &lt;/a&gt;申請加入你建立的&lt;a rel="nofollow" title="blocked::http://tw.group.knowledge.yahoo.com/c-plusplus" style="margin:0px 4px;color:rgb(209, 42, 0);"&gt;C/C++程式語言討論研究&lt;/a&gt;知識團，以下是他的加入原因：&lt;br&gt;&lt;cite style="font-size:12px;color:rgb(21, 106, 135);line-height:200%;font-style:normal;"&gt;知識裡頭的問題平均水準老實說不高. 一半左右都是寫功課那種, 要什麼水平... 希望加入後有更多機會接觸較具深度的文章和討論. 我是灌水的第三行.&lt;/cite&gt;&lt;br&gt;&lt;br&gt;&lt;a rel="nofollow" title="blocked::http://tw.knowledge.yahoo.com/my/my?show=AB02052198" style="color:rgb(209, 42, 0);margin-right:4px;" target="_blank" href="http://tw.knowledge.yahoo.com/my/my?show=AB02052198"&gt;ㄚ旺 &lt;/a&gt;申請加入你建立的&lt;a rel="nofollow" title="blocked::http://tw.group.knowledge.yahoo.com/c-plusplus" style="margin:0px 4px;color:rgb(209, 42, 0);"&gt;C/C++程式語言討論研究&lt;/a&gt;知識團，以下是他的加入原因：&lt;br&gt;&lt;cite style="font-size:12px;color:rgb(21, 106, 135);line-height:200%;font-style:normal;"&gt;程式在闡明電腦存在之真諦，不可執著程式，也不可捨離程式，使之得到授用而已．&lt;br&gt;&lt;br&gt;&lt;font style="color:rgb(0, 0, 0);" size="3"&gt;歡迎他們兩位加入&lt;/font&gt;&lt;br&gt;&lt;/cite&gt;&lt;br&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-10-27 13:32:50 補充&lt;/ins&gt;
       &lt;div class="content"&gt;剛剛查了一些網路書店.發現此書以絕版.真是可惜&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Fri, 19 Sep 2008 14:09:12 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|網際網路|網路社群</category>
  <author>喵喵咪</author>
  <title>邀請團員可是搜尋功能找不到人@#!@#</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=7</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=7</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 0 &amp;nbsp; 回應: 1 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;知識團. &lt;br&gt;邀請團員功能中的找尋團員. 跟本找不到人. 這這是什麼爛功能呢.&lt;br&gt;看來這個東西bug 還真是多阿.&lt;br&gt;&lt;br&gt;建議可用團員ID 來邀請.&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-10-27 13:32:50 補充&lt;/ins&gt;
       &lt;div class="content"&gt;剛剛查了一些網路書店.發現此書以絕版.真是可惜&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Thu, 18 Sep 2008 11:09:42 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|程式設計|C&C++</category>
  <author>喵喵咪</author>
  <title>C/C++ 程式技巧(不是很好用的技巧)</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=6</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=6</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 0 &amp;nbsp; 回應: 0 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;as title &lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://www.phpbbserver.com/graphicsparalle/viewtopic.php?t=276&amp;mforum=graphicsparalle"&gt;請參考&lt;/a&gt;&lt;br&gt;&lt;br&gt;迷之音.. 要足夠的字數阿...&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-10-27 13:32:50 補充&lt;/ins&gt;
       &lt;div class="content"&gt;剛剛查了一些網路書店.發現此書以絕版.真是可惜&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Thu, 11 Sep 2008 18:09:35 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|硬體|其他</category>
  <author>喵喵咪</author>
  <title>mobile01 上的討論. 多cpu ..</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=4</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=4</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 0 &amp;nbsp; 回應: 5 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;&lt;a rel="nofollow" target="_blank" href="http://www.mobile01.com/topicdetail.php?f=296&amp;t=741984&amp;p=1"&gt;http://www.mobile01.com/topicdetail.php?f=296&amp;t=741984&amp;p=1&lt;/a&gt;&lt;br&gt;&lt;br&gt;多cpu 要怎麼用才會快.. .#@!#!@3&lt;br&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-08-28 09:32:06 補充&lt;/ins&gt;
       &lt;div class="content"&gt;跟Jacob 在msn 討論這個事
基本上，OS 約能 Handel 到 10 Cores ＞ 10 Cores，OS 不能處理所以，多核， 在總效能上，10核下，會增加！（OS有支援的話） 在單一程式上，要看程式有沒有沒有寫平行？用啥架構去寫？
一但 20核、80核、1000核出現 沒有 OS 可以 Handel （指讓它多核的加速效果出現）
所以 我略看剛那裡約10篇 沒一篇掌握到這個重點！

為了多核，CPU 的頻率下降了！ 也就是說，在指令集極相似的前提下， （沒有平行的程式） 1Co 3.8G 的執行速度，基本上就是 2Co 1.9G 的２倍！

但因絕大多數的程式都是在 OS 下跑 OS 若能把較高的 執行率給應用程式 應用程式跑起來，當然會比較快所以，1.9G 並不會是 3.8G 一半的速度 會再快半點

多核的重點之一，是向前相容！ 當然，它會多一點平行用的東西 但，真的很少！&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Mon, 25 Aug 2008 09:08:23 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|程式設計|C&C++</category>
  <author>喵喵咪</author>
  <title>VC6.0 bug</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=3</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=3</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 0 &amp;nbsp; 回應: 0 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;__int64 的bug &lt;br&gt;&lt;br&gt;__int64 n;&lt;br&gt;__int64 c;&lt;br&gt;&lt;br&gt;c = 1;&lt;br&gt;c &lt;&lt;=32;&lt;br&gt;&lt;br&gt; n/ c ; 會出現除零錯誤&lt;br&gt;&lt;br&gt;&lt;br&gt;c = 1;&lt;br&gt;c&lt;&lt;=31;     c 會變成0xffffffff80000000&lt;br&gt;&lt;br&gt;此bug 在VC2005 SP1 修正.&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-08-28 09:32:06 補充&lt;/ins&gt;
       &lt;div class="content"&gt;跟Jacob 在msn 討論這個事
基本上，OS 約能 Handel 到 10 Cores ＞ 10 Cores，OS 不能處理所以，多核， 在總效能上，10核下，會增加！（OS有支援的話） 在單一程式上，要看程式有沒有沒有寫平行？用啥架構去寫？
一但 20核、80核、1000核出現 沒有 OS 可以 Handel （指讓它多核的加速效果出現）
所以 我略看剛那裡約10篇 沒一篇掌握到這個重點！

為了多核，CPU 的頻率下降了！ 也就是說，在指令集極相似的前提下， （沒有平行的程式） 1Co 3.8G 的執行速度，基本上就是 2Co 1.9G 的２倍！

但因絕大多數的程式都是在 OS 下跑 OS 若能把較高的 執行率給應用程式 應用程式跑起來，當然會比較快所以，1.9G 並不會是 3.8G 一半的速度 會再快半點

多核的重點之一，是向前相容！ 當然，它會多一點平行用的東西 但，真的很少！&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Fri, 22 Aug 2008 09:08:57 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|程式設計|其他</category>
  <author>喵喵咪</author>
  <title>討論版收集</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=2</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=2</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 0 &amp;nbsp; 回應: 1 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;&lt;span style="text-decoration:underline;"&gt;&lt;/span&gt;國內&lt;br&gt;&lt;br&gt;Jacob Lee 的&lt;a rel="nofollow" target="_blank" href="http://www.phpbbserver.com/graphicsparalle/index.php?mforum=graphicsparalle"&gt;程式、音樂、數學&lt;/a&gt;  以C/C++ 演算法為主&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://www.gamelife.idv.tw/"&gt;電腦遊戲製作開發設計論壇&lt;/a&gt; 討論Game 製作&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://jjhou.csdn.net/"&gt;侯捷的書&lt;/a&gt;&lt;strong&gt;&lt;span style="font-size:14pt;color:blue;"&gt;&lt;br style="color:rgb(255, 255, 255);"&gt;&lt;font style="background-color:rgb(255, 255, 255);color:rgb(0, 0, 0);" size="4"&gt;&lt;span style="font-family:細明體;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;a rel="nofollow"&gt;洗鏡光老師的blog&lt;/a&gt;&lt;strong&gt;&lt;span style="font-size:14pt;color:blue;"&gt;&lt;font style="background-color:rgb(255, 255, 255);color:rgb(0, 0, 0);" size="4"&gt;&lt;span style="font-family:細明體;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;/span&gt;&lt;/strong&gt;&lt;a rel="nofollow" target="_blank" href="http://www.programmer-club.com/index.asp"&gt;程式設計俱樂部&lt;/a&gt; 台灣最大的討論程式語言的版把. 高手很多.&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://ehome.hifly.to/"&gt;工程師的家&lt;/a&gt; 由coco 主持. 他的C++ 很強.&lt;br&gt;我的在 &lt;a rel="nofollow" target="_blank" href="http://cockroachtw.spaces.live.com/"&gt;msn space &lt;/a&gt;不怎麼好用&lt;br&gt;&lt;br&gt;&lt;font size="4"&gt;國外的&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;a rel="nofollow" target="_blank" href="http://www.experts-exchange.com/Developer/Programming/Languages/C/#browseZones"&gt;experts-exchange&lt;/a&gt;  使用跟Yahoo Knowlage+ 差不多的點數系統. 但是更有彈性&lt;br&gt;&lt;br&gt;&lt;br&gt;歡迎大家提供&lt;br&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-08-28 09:32:06 補充&lt;/ins&gt;
       &lt;div class="content"&gt;跟Jacob 在msn 討論這個事
基本上，OS 約能 Handel 到 10 Cores ＞ 10 Cores，OS 不能處理所以，多核， 在總效能上，10核下，會增加！（OS有支援的話） 在單一程式上，要看程式有沒有沒有寫平行？用啥架構去寫？
一但 20核、80核、1000核出現 沒有 OS 可以 Handel （指讓它多核的加速效果出現）
所以 我略看剛那裡約10篇 沒一篇掌握到這個重點！

為了多核，CPU 的頻率下降了！ 也就是說，在指令集極相似的前提下， （沒有平行的程式） 1Co 3.8G 的執行速度，基本上就是 2Co 1.9G 的２倍！

但因絕大多數的程式都是在 OS 下跑 OS 若能把較高的 執行率給應用程式 應用程式跑起來，當然會比較快所以，1.9G 並不會是 3.8G 一半的速度 會再快半點

多核的重點之一，是向前相容！ 當然，它會多一點平行用的東西 但，真的很少！&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Thu, 21 Aug 2008 09:08:47 CST</pubDate>
 </item>
 <item>
  <category>電腦網路|程式設計|C&C++</category>
  <author>喵喵咪</author>
  <title>C sizeof Q&amp;amp;A</title>
  <guid isPermaLink="true">http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=1</guid>
  <link>http://tw.group.knowledge.yahoo.com/c-plusplus/article/view?aid=1</link>
  <description>      &lt;p&gt;&lt;div&gt;&lt;img src="http://l.yimg.com/d/lib/ks/akp/i9/tw/l4_3232.gif"&gt;&lt;/img&gt;
      評價: 0 &amp;nbsp; 回應: 0 &amp;nbsp;&lt;/div&gt;&lt;/p&gt;
      &lt;p&gt;&lt;div&gt;假設是在32bit 的系統下. 指標型別大小都是32bit 考慮下列問題 sizeof 的大小&lt;br&gt;&lt;br&gt;Question&lt;br&gt;&lt;br&gt;1. sizeof 是在run time 還是compiler time 記算出?&lt;br&gt;&lt;br&gt;2. sizoef(int) sizeof(char)  sizeof(int*)  sizeof(double*)&lt;br&gt;&lt;br&gt;3. char p[100];&lt;br&gt;sizeof(p);&lt;br&gt;&lt;br&gt;4. &lt;br&gt;void Test(char a[][100])&lt;br&gt;{&lt;br&gt;   sizeof(a);&lt;br&gt;}&lt;br&gt;&lt;br&gt;5. &lt;br&gt;void Test(char *a)&lt;br&gt;{&lt;br&gt;  sizeof(a);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;ANS :&lt;br&gt;1. sizeof 是在run time 還是compiler time 記算出?&lt;br&gt;Compiler time &lt;br&gt;&lt;br&gt;2. sizoef(int) sizeof(char)  sizeof(int*)  sizeof(double*)&lt;br&gt;sizoef(int) = 4&lt;br&gt;sizeof(char) = 1&lt;br&gt;sizeof(int*) = 4&lt;br&gt; sizeof(double*) = 4&lt;br&gt;&lt;br&gt;3. char p[100];&lt;br&gt;sizeof(p); &lt;br&gt;100 因陣列大小為100&lt;br&gt;&lt;br&gt;&lt;br&gt;4. &lt;br&gt;void Test(char a[][100])&lt;br&gt;{&lt;br&gt;   sizeof(a);&lt;br&gt;}&lt;br&gt;&lt;br&gt;sizoef(a) = 4 &lt;br&gt;因為compiler 只會傳一個address 過去&lt;br&gt;&lt;br&gt;5.&lt;br&gt;void Test(char *a)&lt;br&gt;{&lt;br&gt;  sizeof(a);&lt;br&gt;}&lt;br&gt;&lt;br&gt;sizoef(a) = 4 也是一個pointer&lt;br&gt;&lt;/div&gt;&lt;/p&gt;       &lt;p&gt;&lt;ins&gt;於 2008-08-28 09:32:06 補充&lt;/ins&gt;
       &lt;div class="content"&gt;跟Jacob 在msn 討論這個事
基本上，OS 約能 Handel 到 10 Cores ＞ 10 Cores，OS 不能處理所以，多核， 在總效能上，10核下，會增加！（OS有支援的話） 在單一程式上，要看程式有沒有沒有寫平行？用啥架構去寫？
一但 20核、80核、1000核出現 沒有 OS 可以 Handel （指讓它多核的加速效果出現）
所以 我略看剛那裡約10篇 沒一篇掌握到這個重點！

為了多核，CPU 的頻率下降了！ 也就是說，在指令集極相似的前提下， （沒有平行的程式） 1Co 3.8G 的執行速度，基本上就是 2Co 1.9G 的２倍！

但因絕大多數的程式都是在 OS 下跑 OS 若能把較高的 執行率給應用程式 應用程式跑起來，當然會比較快所以，1.9G 並不會是 3.8G 一半的速度 會再快半點

多核的重點之一，是向前相容！ 當然，它會多一點平行用的東西 但，真的很少！&lt;/div&gt;&lt;/p&gt;</description>
  <pubDate>Thu, 21 Aug 2008 09:08:15 CST</pubDate>
 </item>
</channel>
</rss>
<!-- w33.ks.tp2.yahoo.com uncompressed/chunked Mon Nov 23 12:20:52 CST 2009 -->
