// 在 set 中使用自己的結構體 #include "stdafx.h" #include <iostream> #include <set> struct student { std::string name; int age; bool is_boy; }; /// 需要自己寫比較大小的規則 bool operator<(const student& lhs, const student& rhs) { char a = lhs.name.front(); /// name 按照首字母的askii比較 if(lhs.name.front() == rhs.name.front()) { /// name 相同,比較 age if(lhs.age == rhs.age) { /// age 相同,比較 is_boy return lhs.is_boy < rhs.is_boy; } else return lhs.age < rhs.age; } else return lhs.name.front() < rhs.name.front(); } int _tmain(int argc, _TCHAR* argv[]) { student A = {std::string("A"), 20, true}; student A1 = {std::string("A"), 21, true}; student A2 = {std::string("A"), 20, false}; student B = {std::string("B"), 20, true}; student C = {std::string("C"), 20, false}; student D = {std::string("D"), 20, false}; std::set<student> groups; groups.insert(A); groups.insert(A1); groups.insert(A1); groups.insert(A); groups.insert(B); groups.insert(B); groups.insert(C); groups.insert(D); groups.insert(A2); return 0; }
關於dll和lib的說明
多個dll不能打包成一個dll或者lib
多個靜態庫lib可以打包成一個靜態庫lib
dll不參加編譯,只在運行的時候鏈接。
靜態庫會參加編譯,編譯結束後會被寫到exe中。運行的時候不需要。
std::set存自定義的結構體,需要重載operator<
excel函數:MID\SEARCH\TEXT\FIND\EXACT\ROUND\
matlab導入到excel xlsread xlswrite