1.结构体重载

struct T{
    int a,b;
    bool operator <(const T &t) const{//重载小于号,
        if(t.a!=a) return a<t.a;//当a<t.a的时候a优先于t.a
        return b<t.b;//同理;
    }
};

一般结构体排序的时候,可以使用重载,优先队列默认是大根堆,重载方法与其他重载方法相反即可

2.lambda表达式

一般格式[](){
	....
}
[]是捕获列表,()是参数列表,{}里面是具体语句;
//计算长度为5的所有二进制数;
const auto dfs=[](auto self,int n,string s){
        if(n==5) {
            cout<<s<<'\n';
            return;
        }
        self(self,n+1,s+'0');
        self(self,n+1,s+'1');
    };
    dfs(dfs,0,"");

3.istringstream

istringstream可以将整个句子中的每个单词分离出来

string s;
    getline(cin,s);
    istringstream is (s);
    string cur;
    while(is>>cur){
        cout<<cur<<'\n';
    }
	//附加:
	string p="1234";
	/常用stoi和atoi函数;
	int num=stoi(p);//stoi用与string转数字;
	cout<<num<<endl;
	char c[10]="12345";
	int num1=atoi(c);//atoi用于char数组转数字;
	cout<<num1<<endl;