• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • C++/VC++編程的疑難問題及解答

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    1、[VC問題] 編輯框內的換行? 答:假設要在編輯框內輸出"12345\n6789"。首先要設置編輯框的Multiline屬性為TRUE,在輸出時,除了要加\n,還要有\r。也就是說,如果要12345和6789在兩行顯示,需要輸出12345\r\n6789。代碼如下: m_strData = "12345\n67890";

    1、[VC問題] 編輯框內的換行?
    答:假設要在編輯框內輸出"12345\n6789"。首先要設置編輯框的Multiline屬性為TRUE,在輸出時,除了要加\n,還要有\r。也就是說,如果要12345和6789在兩行顯示,需要輸出12345\r\n6789。代碼如下: m_strData = "12345\n67890";   // m_strData是和編輯框關聯的變量
    UpdateData(FALSE);     //更新控件

    2、[C++標準程序庫的問題] list的迭代器是否可以隨機移動?
    答:由于list的內部實現是雙向鏈表,鏈表就要求迭代器(指針)只能依次從前向后(或從后向前)移動,依次移動一個位置,因此list只定義了++和--操作符,而沒有定義+、-、+=和-=等操作符。所以要想list的迭代器移動一段距離,就需要自己編程實現,用一個小循環就行了,代碼如下: #include <list>
    using namespace std;
    list myList;
    … // myList的初始化及其他操作
    list::const_iterator itList = myList.begin();
    // itList向前移動len個距離
    for ( int i= 0; i < len; i++ )
    {
     ++itList;
    }
    … // 其他操作

    3、[C++標準程序庫的問題] 在刪除操作很多的情況下,應該選擇什么樣的容器?
    答:按照標準程序庫的說明,當刪除/插入只發生在容器的尾部時,應該使用vector;當刪除/插入只發生在容器的首/尾部時,應該使用deque;當刪除/插入操作很多,而且刪除/插入不是只在容器的首尾,這時應該選擇list。
      但是這里也有一個問題,在使用list時,由于其迭代器只能一次移動一個位置,在有大量刪除的操作時,需要大量的迭代器移動操作,因此使用list的效率會很低;list的另一個缺點是,占用空間要比同等容量大小的vector要大,這是由于list的實現需要指針,每個元素就多比vector中的元素多兩個指針(雙向鏈表),因此在每個元素都很?。◣讉€字節),而且元素數量很大時,使用list就非常浪費空間了。
      如果使用vector,那么刪除中間元素會導致大量的元素移動操作,效率也不高,為了解決這個問題,我們可以這樣作:使用vector容器,但是不直接刪除元素,而是再申請一個臨時vector,將原來vector中未刪除的有用元素依次加入/保存到臨時vector,然后用這個臨時vector替換原來的vector,如果實現知道要刪除的元素的個數,那么可以事先預留臨時vector的空間,再將有用元素存到臨時vector中,代碼如下: #include <vector>
    using namespace std;
    vector myVec;
    …     // myVec的初始化以及其它操作
    vector tempVec;
         // 刪除myVec中的num個元素
    tempVec.reserve( myVec.size() - num ); // 預留臨時vector的空間

    for ( ;; )
    {
     將myVec中的有用元素存到tempVec中;
    }

    myVec.swap( tempVec ); // myVec的容量等于或稍大于myVec.size()
    …   // 其它操作

    這只是我目前總結的幾個問題,以后遇到問題隨時解決,隨時總結。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>