線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2328
推到 Plurk!
推到 Facebook!

Vector的用法

答題得分者是:paf
pandaforme
一般會員


發表:10
回覆:15
積分:5
註冊:2003-07-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-19 23:40:32 IP:61.66.xxx.xxx 未訂閱
我只用過java的vector 但是c 的沒用過 論壇的文章我也看過了 但是我還是看不懂 (因為我只有學過c) 希望哪位好心的大大 可以提供詳細的用法和範例 不然或者可以跟我說哪一本書有在說明 vector的用法 我現在自訂一個struct 然後宣告struct 陣列 但是我不能一開始就 決定陣列大小 要在程式中才能決定 那假如要用vector那要怎麼用呢 c 的功力真的濫 希望有好心的大大可以提供c的語法 和 範例 非常感謝你們的回答
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-20 00:11:55 IP:203.204.xxx.xxx 未訂閱
pandaforme, 您好 以下資料轉貼自侯捷網站--C Primer 答客問51~60,供您參考。 http://www.jjhou.com/qa-cpp-primer-51-60.htm
C   Primer 答客問 (53) - comparison operations for pair
2000.07.09 第一次發表    allan wrote (2000/07/08) :    > 侯老師:
> 請問您,如果我要在 vector 之中放置 pair,pair 由 int 和 string
> 構成,請問如何排序?
> 謝謝。    侯捷回覆:    pair 本身有 comparison operations. 所以直接使用 sort() 即可。
下面是個例子:    #include 
#include 
#include 
#include 
#include 
using namespace std;    void print_element(pair p)
{
  cout << '<'
       << p.first
       << ','
       << p.second
       << '>'
       << endl;
}    int main()
{
  pair pair1, pair2, pair3;      pair1 = make_pair(16, "jjhou");
  pair2 = make_pair(29, "jason");
  pair3 = make_pair(15, "who");      // 測試 pair 有 comparison operations
  cout << (pair1 < pair2); // 1 (true)
  cout << (pair1 < pair3); // 0 (false)
  cout << (pair2 < pair3); // 0 (false)
  cout << endl;      vector< pair > vec;
  vec.push_back(pair1);
  vec.push_back(pair2);
  vec.push_back(pair3);      for_each(vec.begin(), vec.end(), print_element );
  // <16,jjhou>
  // <29,jason>
  // <15,who>      sort(vec.begin(), vec.end());      for_each(vec.begin(), vec.end(), print_element );
  // <15,who>
  // <16,jjhou>
  // <29,jason>
}
 
================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
paf
初階會員


發表:36
回覆:70
積分:41
註冊:2002-12-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-20 00:18:29 IP:218.164.xxx.xxx 未訂閱
引言: 我只用過java的vector 但是c 的沒用過 論壇的文章我也看過了 但是我還是看不懂 (因為我只有學過c) 希望哪位好心的大大 可以提供詳細的用法和範例 不然或者可以跟我說哪一本書有在說明 vector的用法 我現在自訂一個struct 然後宣告struct 陣列 但是我不能一開始就 決定陣列大小 要在程式中才能決定 那假如要用vector那要怎麼用呢 c 的功力真的濫 希望有好心的大大可以提供c的語法 和 範例 非常感謝你們的回答
vector<資料型態> 變數名稱;
vector<資料型態>::iterator 變數名稱;  //這是vector容器的指位器
所以可以試著宣告成
typedef struct test
{
    .
    .
    .
};
vector v;
vector::iterator i;
然後再insert
以上的方法我沒試過..小弟不知道是否能夠用vector來動態新增struct 其實您可以試著用link-list的方法來寫.
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-20 00:45:13 IP:61.231.xxx.xxx 未訂閱
pandaforme您好:
引言:論壇的文章我也看過了但是我還是看不懂 (因為我只有學過c) 希望哪位好心的大大可以提供詳細的用法和範例
請問您看的是這一篇嗎??
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28649 
[建構動態二維陣列的問題]brook的方式,當中寫的蠻詳細的 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
pandaforme
一般會員


發表:10
回覆:15
積分:5
註冊:2003-07-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-20 11:01:21 IP:61.66.xxx.xxx 未訂閱
剛剛試了一下paf大大的做法 可以耶 你的說法我也很可以清楚的懂    謝謝你喔 taishyang說的那一篇文章我看過了 裡面一大堆指標    和template的用法 實在是看不懂 tech_state提供的文章也很不錯喔    我再問一個問題 將資料放到vector裡面 可以用陣列方式去存取嗎    假如我放十筆資料到vector 我想讀出第三筆資料要怎麼做??    再麻煩一下大家了
paf
初階會員


發表:36
回覆:70
積分:41
註冊:2002-12-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-20 11:51:54 IP:218.164.xxx.xxx 未訂閱
引言: 剛剛試了一下paf大大的做法 可以耶 你的說法我也很可以清楚的懂 謝謝你喔 taishyang說的那一篇文章我看過了 裡面一大堆指標 和template的用法 實在是看不懂 tech_state提供的文章也很不錯喔 我再問一個問題 將資料放到vector裡面 可以用陣列方式去存取嗎 假如我放十筆資料到vector 我想讀出第三筆資料要怎麼做?? 再麻煩一下大家了 < face="Verdana, Arial, Helvetica"> 其實我覺得vector跟陣列很像吧. 只是array能直接去存取 而vector是要透過insert()或是push_back()去做插入及存取的動作吧 STL小弟不是說很熟!!^^
#include
#include    void main()
{
   vector v;
   vector::iterator i;
   v.push_back(1);     //第一筆資料
   v.push_back(2);     //第二筆資料
   v.push_back(3);     //第三筆資料
   v.push_back(4);     //第四筆資料
   cout<     
        
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-20 12:58:40 IP:140.135.xxx.xxx 未訂閱
pandaforme您好:  
引言:taishyang說的那一篇文章我看過了 裡面一大堆指標和template的用法 實在是看不懂
我說的是brook的用法,
 
#include 
int m=5,n=4;
vector  aStack(n);  //一維
vector > Array(m, vector(n)); //二維
aStack[2] = 8.5;
Array[2][2] = 6.8;
沒有指標吧< > 順心< > ~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 - taishyang 於 2003/07/20 12:59:51
系統時間:2024-05-16 13:11:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!