`vector` 浅谈和 `Lambda` 表达式
vector 浅谈和 Lambda 表达式
vector
一般来说我们可以这样给赋初值
vector<int>a(n+2,0x3f3f3f3f);
二维
vector<vector<int>>a(n+2,vector<int>(n+2,0x3f3f3f3f));
如果是多次操作,我们可以用
a.clear();
a.resize(n+2,0x3f3f3f3f);
去重
sort(a.begin(),a.end());
a.erase(unique(a.begin(),a.end()),a.end);
方便的交换
vector<int>a,b;
a.push_back(1);
b.push_back(0);
swap(a,b);
另外一种简单的遍历方法。
vector<int>a;
a.push_back(1);
a.push_back(2);
for(auto v:a){
cout<<v<<' ';
}
Lambda 表达式
递归的函数写法
auto dfs=[&](auto self,auto x)->void{
self(self,x);
};
dfs(dfs,x);
一般的
auto solve=[&]()->void{
cout<<"CCF\n";
};
solve();