全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1705
推到 Plurk!
推到 Facebook!

請問宣告vector時的資料型態可否自訂??

尚未結案
ddt_hsieh
一般會員


發表:2
回覆:1
積分:0
註冊:2005-03-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-17 12:51:04 IP:140.122.xxx.xxx 未訂閱
vector的宣告語法    vector<資料型態>  變數名稱;    我想請教其中資料型態是否可用自訂的??(使用typedef) 謝謝    我試跑的程式碼如下:
    void main(){      typedef struct test{
     int a;
     vector b;
  };      vector test1;     }
出現的錯誤:types with no linkage cannot be used as template arguments 發表人 - taishyang 於 2005/03/17 15:53:37
ddt_hsieh
一般會員


發表:2
回覆:1
積分:0
註冊:2005-03-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-17 14:58:52 IP:140.122.xxx.xxx 未訂閱
我自問自答:P 答案是可以的 把struct敘述拉出到main以外就可編譯了雖然我不知道原因><    
      struct test{
     int a;
     vector b;
  };    void main(){      vector test1; 
  vector ::iterator iter=test1.begin();
  iter->b.push_back(1);    }
發表人 - taishyang 於 2005/03/17 15:58:23
polongkon
一般會員


發表:8
回覆:19
積分:5
註冊:2004-04-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-05 16:04:06 IP:211.21.xxx.xxx 未訂閱
這樣做可以通過編譯,但是在Runtime時卻會造成錯誤。 iter->b.push_back(1); <<發生錯誤 這是為什麼? 有高手可以伸援手嗎?
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-05 17:35:32 IP:61.219.xxx.xxx 未訂閱
To Polongkon,    因為test1這個容器裡還沒裝入test物件,所以iter會指向錯誤的地方. 有很多方式可以去操作容器,提供一個方式如下
vector test1;
test tt;
tt.a=1;
tt.b.push_back(1);
tt.b.push_back(2);
.................
test1.push_back(tt);
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-05 18:11:34 IP:211.76.xxx.xxx 未訂閱
大家好:    瀏覽網路發現一個關於vector的不錯討論,請參考!    http://www.codeguru.com/Cpp/Cpp/cpp_mfc/stl/article.php/c4027 RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
polongkon
一般會員


發表:8
回覆:19
積分:5
註冊:2004-04-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-05 20:43:35 IP:61.216.xxx.xxx 未訂閱
謝謝 GeorgeKu 與 richtop 大的回覆。 標準函式庫容器的操作是一門值得深入研究的學問...
系統時間:2024-06-16 2:35:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!