都是自己摸索出来的, 写blog确实累
1、填充一维数组时
①fill(数组名, 数组名 + 要填充的个数, 填充的值);
②fill(数组名 + 起始位置, 数组名 + 要填充的个数, 填充的值);
//若起始位置从0开始, 则起始位置可以省略
代码及运行结果展示 :
fill(arr, arr + N, 1);
for (int i = 0; i < N; i++)
cout << arr[i] << ' ';
cout << '\n';
fill(arr, arr + 5, 2);
for (int i = 0; i < N; i++)
cout << arr[i] << ' ';
fill(arr + 6, arr + 10, 3);
cout << '\n';
for (int i = 0; i < N; i++)
cout << arr[i] << ' ';
2、填充二维数组时
①fill(数组名[行数], 数组名[行数] + 要填充的个数, 填充的值);
最常用的部分, 从arr[0][0]开始逐行填充
fill(dis[0], dis[0] + N * N - N, 1);
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++)
cout << dis[i][j] << ' ';
cout << '\n';
}
②fill(数组名[行数] + 起始位置, 数组名[行数] + 要填充的个数, 填充的值);
行数可以是0也可以是其他数, 起始位置就是从arr[行数][起始位置]开始填充
行数 = 1, 起始位置 = 1, 则从arr[1][1]处开始填充
fill(dis[1] + 1, dis[1] + 3 * N - 2, 2);
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++)
cout << dis[i][j] << ' ';
cout << '\n';
}
③fill(数组名[行数] - 值, 数组名[行数] + 要填充的个数, 填充的值);
和②差不多, 但是是从arr[行数 - 1][每行长度 - 值]处开始填充
fill(dis[1] - 2, dis[1] + 3 * N - 2, 2);
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++)
cout << dis[i][j] << ' ';
cout << '\n';
}
3、填充一维vector时
①填充v全部
fill (v.begin(), v.end(), value);
vector<int>v(N);
fill(v.begin(), v.end(), 1);
for (int i = 0; i < N; i++) cout << v[i] << ' ';
②填充v部分
fill (v.begin(), v.begin() + pos, value);ps: 需要满足pos < 数组列数;
fill (v.begin() + p1, v.end() - p2, value);ps: 需要满足p1 > p2;
fill (v.end() - p1, v.end() - p2, value);ps: 需要满足p1 > p2; p1 = p2相当于没有填充
fill(v.begin(), v.begin() + 2, 1);
for (int i = 0; i < N; i++) cout << v[i] << ' ';
cout << '\n';
fill(v.begin() + 3, v.end() - 1, 2);
for (int i = 0; i < N; i++) cout << v[i] << ' ';
cout << '\n';
fill(v.end() - 3, v.end() - 2, 3);
for (int i = 0; i < N; i++) cout << v[i] << ' ';
4、填充二维vector时
要熄灯了, 第二天再研究吧()大一生的苦逼生活