`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();