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

關於Visual studio 內的visual c++6.0的Set的問題

尚未結案
balado
一般會員


發表:14
回覆:6
積分:4
註冊:2003-12-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-27 08:06:56 IP:211.76.xxx.xxx 未訂閱
請問一下: STL內的容器可以find一個class的物件嘛?    也就是說一個class內有兩個整數 那我可以用find去尋找相同pair的數值嘛    如: class abc內有兩個整數integer1,integer2    set test abc a; a.integer1=5 a.integer2=5 test.find(a) ←這邊應該怎麼撰寫? 而且要是用這種搜尋方法的話那set最自豪的log^n搜尋時間還可以保有嘛?
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-27 11:54:47 IP:221.169.xxx.xxx 未訂閱
set之所以有對數的複雜度,在於他事先以tree的方式記錄了所有元素(item)    從這觀點來看,若你想要以元素內兩個整數當成判斷的依據 排序的方式就需要跟這兩個整數有關 因此你需要在abc類別內實作 operator < 建議以兩個整數的差來當成比較的量值 也就是
bool abc::operator < (abc& first, abc& second)
{
  return (first.integer1-first.integer2) < (second.integer1-second.integer2);
}
接下來建立一個比較的物件 abc a; a的兩個整數值相等 [code] test.equal_range(a).first test.equal_range(a).second 兩個元素之間的所有元素就是你要的「pair相同數值」的元素
系統時間:2024-06-28 18:48:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!