// 在 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