程序片段----std::set中使用自己定义的结构体需要重载小于号 20170904

来源:互联网 发布:kmp算法next计算例题 编辑:程序博客网 时间:2024/05/22 01:26


// 在 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 相同,比较 ageif(lhs.age == rhs.age){/// age 相同,比较 is_boyreturn lhs.is_boy < rhs.is_boy;}elsereturn lhs.age < rhs.age;}elsereturn 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;}


关于dlllib的说明

 

多个dll不能打包成一个dll或者lib

多个静态库lib可以打包成一个静态库lib

 

dll不参加编译,只在运行的时候链接。

静态库会参加编译,编译结束后会被写到exe中。运行的时候不需要。

 

std::set存自定义的结构体,需要重载operator<

 

excel函数:MID\SEARCH\TEXT\FIND\EXACT\ROUND\

matlab导入到excel xlsread xlswrite





阅读全文
0 0
原创粉丝点击