作者lance0705 (藍‧聲‧口‧琴)
看板C_and_CPP
標題[STL ] set與map的key type使用自訂class 發生編譯問題
時間Tue May 26 05:52:16 2009
問題如下:
今天我有一個自訂類別想把它存在set中
譬如:set<A> SetOfA;
但是我又希望在裝入set之後還可以改變A的值
因此以SetOfA的iterator呼叫了A的non-constant member function
在VC++編譯可過
但在g++或icc都不行
後來才發現在標準的語法中 做為key type的物件必須為constant object
想請問除了把整個code重寫orz
有沒有別的辦法讓他在icc或g++中編譯過(或是小幅度的修改就好)
以上 懇請板上高手回答
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.32.133
※ 編輯: lance0705 來自: 140.112.32.133 (05/26 05:59)
1F:推 realmojo:我試g++可以喔,用iterator呼叫non-const member functio 05/26 07:42
2F:→ realmojo:呃,我試錯了,...試成vector了 ... 05/26 07:44
3F:→ realmojo:在set中還是可以把function宣告成 const 然後把會改的變 05/26 07:45
4F:→ realmojo:數宣告成mutable 05/26 07:45
5F:→ lance0705:噢噢 請問宣告變數為mutable的方法是? 05/26 08:07
6F:推 realmojo:mutable int a; 05/26 08:14
7F:→ lance0705:我試試看,感謝您! 05/26 08:38