最近完成專案遇到乙個問題 map需要設計多個鍵值,也就是key-value的key希望是乙個結構體,裡面有好幾個元素:
網上查閱了資料(主要參考:解決方案如下:
主要就是需要設定一下 < 比較符的定義,因為只有乙個鍵值的時候是很好比較的,但使用結構體後,我們就需要考慮比較關係
我們使用bool operator<()函式來過載《運算子,具體的寫法有兩種,在樣例**中有所展示(這裡我寫的是優先比較年齡,之後再比較名字)。
樣例**:
//
// main.cpp
// table_test
//// created by qiucheng lin on 2020/2/5.
//#include #include #include#include#includestruct man,triple_score2 = ,triple_score3 = ;
man man1,man2,man3,man4;
man1.name = "lacy";
man1.age = 21;
man2.name = "lucy";
man2.age = 24;
man3.name = "james";
man3.age = 21;
//插入操作
infos.insert(std::map::value_type (man1, triple_score1));
infos.insert(std::map::value_type (man2, triple_score2));
infos.insert(std::map::value_type (man3, triple_score3));
//遍歷
for(std::map::iterator iter = infos.begin(); iter != infos.end(); ++iter)
man4.name = "lucy";
man4.age = 24;
//查詢
std::map::iterator iter2=infos.find(man2);
if(iter2==infos.end())
std::cout << iter2->second.score[0]<< std::endl;
std::cout << iter2->second.score[1]<< std::endl;
std::cout << iter2->second.score[2]<< std::endl;
return 0;
}
python遞迴需要使用self
在刷劍指offer的時候遇到合併鍊錶的題,使用python嘗試用遞迴方法來解,結果出現了global name merge is not defined的錯誤,原因是在遞迴呼叫的時候需要使用self.merge class listnode def init self,x self.val x se...
SQL Server到底需要使用哪些埠
sql server在安裝到伺服器上後,由於出於伺服器安全的需要,所以需要遮蔽掉所有不使用的埠,只開放必須使用的埠。下面就來介紹下sql server 2008中使用的埠有哪些 首先,最常用最常見的就是1433埠。這個是資料庫引擎的埠,如果我們要遠端連線資料庫引擎,那麼就需要開啟該埠。這個埠是可以修...
shell 指令碼 算術測試需要使用
bin bash 算術測試.結構可以用來計算並測試算術表示式的結果.退出狀態將會與 結構完全相反 0 echo exit status of 0 is 1 1 echo exit status of 1 is 0 5 4 真 echo exit status of 5 4 is 0 5 9 假 ec...