[問題] 請問std::map::find
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC2008
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
MFC
問題(Question):
請問std::map以struct當key時,該如何寫"operator<"
使得使用map::find可以正確回傳要找的key的iterator?
程式碼(Code):(請善用置底文網頁, 記得排版)
http://ideone.com/hE1bEh
補充說明(Supplement):
不好意思,小弟又上來請教一下各位先進。
以上面的範例為例,假設我自己定義一個SiteInfo struct,
想要以它為key,放入std::map裡面。
當我使用std::map::find的時候,VC2008跟我說缺少"operator<"沒做。
我找版上的文章看到之前有類似的問題(6447篇),
但是我定義的struct中跟之前的範例有所不同:
1. 6447篇的版友定義的struct裡面都是int,而我有兩個CString
2. SiteInfo這個struct被我用來辨認是否為同一隻camera,
其中SiteID跟MAC必須相同,SiteName可以不同。
問題來了
1. 我不知道CString MAC該如何比大小?
2. SiteName我不需要用來比較是否為同一隻,但是不寫在operator<裡面好像不行?
上面的網址的程式馬是我從我的project擷取出來的。
我用VC2008這樣寫可以過,但是執行時
1. debug版,insert第二個時會直接跳出警告視窗,告訴我operator<出問題
2. release版,可以insert,但是在find的地方找出來的iterator是錯的
請教版上各位先進該怎麼解決呢?
感激不盡。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.209.129
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1419964261.A.BBF.html
※ 編輯: Keitaro (114.43.209.129), 12/31/2014 02:32:44
推
12/31 03:06, , 1F
12/31 03:06, 1F
推
12/31 03:08, , 2F
12/31 03:08, 2F
→
01/02 06:33, , 3F
01/02 06:33, 3F