c++中iota容器和fill的区别
在C++ 中,std::iota
和 std::fill
都是标准库中的函数,用于对序列进行操作,它们的功能和用法如下:
std::iota
- 功能:
std::iota
函数用于将一个连续的递增序列赋值给指定范围的元素。它接受三个参数,第一个参数是目标序列的起始迭代器,第二个参数是目标序列的结束迭代器,第三个参数是起始值。std::iota
会从起始值开始,依次递增 1,将值赋给目标序列中的每个元素。 - 示例
#include <iostream>
#include <numeric>
#include <vector>int main() {std::vector<int> v(5);// 从 1 开始,依次递增 1,填充到 v 中std::iota(v.begin(), v.end(), 1); for (int i : v) {std::cout << i << " ";}// 输出:1 2 3 4 5return 0;
}
std::fill
- 功能:
std::fill
函数用于将指定范围内的元素设置为给定的值。它接受三个参数,第一个参数是目标序列的起始迭代器,第二个参数是目标序列的结束迭代器,第三个参数是要设置的值。std::fill
会将目标序列中的每个元素都设置为指定的值。 - 示例
#include <iostream>
#include <algorithm>
#include <vector>int main() {std::vector<int> v(5);// 将 v 中的所有元素设置为 10std::fill(v.begin(), v.end(), 10); for (int i : v) {std::cout << i << " ";}// 输出:10 10 10 10 10return 0;
}