【OJ】常用技巧
1. 模版
#include<bits/stdc++.h>
using namespace std;int main(){ios::sync_with_stdio(false);cin.tie(0);// write herereturn 0;
}
2. 填充数组
memset
是一个字节一个字节填充,如果是使int类型填充非0或者-1就会报错,如
int a[100];
memset(a, 1, sizeof(a));
实际上每一个a的元素都是00000001 00000001 00000001 00000001
,结果并不是1。
所以使用fill
填充更好
int a[100];
fill(a, a+100, 1);int b[100][100];
fill(b[0], b[0]+100*100, 1);vector<int> c(8);
for(vector<int>::iterator it=c.begin();it!=c.end();it++){cout<<*it<<" ";
}
cout<<endl;
//0 0 0 0 0 0 0 0vector<int> d(8,1);
for(vector<int>::iterator it=d.begin();it!=d.end();it++){cout<<*it<<" ";
}
cout<<endl;
//1 1 1 1 1 1 1 1fill(d.begin(), d.end(), 3);
fill(d.begin(), d.begin()+4, 4);for(vector<int>::iterator it=d.begin();it!=d.end();it++){cout<<*it<<" ";
}
cout<<endl;
// 4 4 4 4 3 3 3 3
以上是使用fill进行一维数组或者二维数组的填充方法。vector
可以使用同一个值初始化,之后也可以使用fill进行一些值的设置。