看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《blueice08 (藍色的冰)》之銘言: : 假設我定義兩個結構及一個map: : typedef struct i_test { : unsigned int ii1; : unsigned int ii2; : unsigned int ii3; : }; : typedef struct v_test { : unsigned int vv1; : unsigned int vv2; : }; : typedef map<i_test, v_test> testMap; : 然後: : i_test itest; : v_test vtest; : testMap ttMap; : ttMap.insert(make_pair(itest, vtest)); //有發生錯誤。 在網路上看到了這樣的討論串: http://www.daniweb.com/forums/showthread.php?p=812327#post812327 其中七樓(#7)的回應中提到需要"讓(key1, key2)的組合是唯一"的, 因此在下面作者lyle017有了這樣的回覆: bool operator<(const keyInfo& A) const { return ((Key1<A.Key1) || (Key2<A.Key2)); } 而我將這樣的概念用在我key的struct中有5個變數的程式中, 跑出來的結果是有問題的,而採其中兩個變數做return也是有問題的~ 所以似乎上面的程式也不是正確的解法? 我有嘗試將return改為:return !((Key1==A.Key1) && (Key2==A.Key2)); 也無法達到兩個key的組合唯一的需求。 不曉得是我哪裡觀念有誤,煩請版友們解惑… 謝謝:) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.14.84