用随机元素填充矢量
fill vector with random elements
为什么我的lambda不把元素放在向量中?
void generate_N_numbers_in_the_vector(std::vector<int> &vec, int &M,
const int &N) {
std::random_device rand;
static std::mt19937 gen(rand());
static std::uniform_int_distribution<int> distribution(0, M);
vec.reserve(N);
std::generate(vec.begin(), vec.end(), []() { return distribution(gen); });
for (auto elem : vec) std::cout << elem << std::endl;
}
使用reserve
时,向量中的元素数不会增加。这意味着begin(vec)
和end(vec)
之间的差异为 0(或任何开始时向量的大小(。有两种可能性:
vec.resize(N);
std::generate(vec.begin(), vec.end(), [](){return distribution(gen);});
// or
vec.reserve(N); // Not necessary but sensible.
std::generate_n(std::back_inserter(vec), N, [](){return distribution(gen);});
std::vector::reserve
只保留空间,这意味着增加容量,而不是大小。请改用std::vector::resize
来更改矢量的大小。
相关文章:
- 用随机元素填充矢量
- 为什么数组的 GCC 聚合初始化首先用零填充整个事物,包括非零元素?
- 无法获取已填充堆栈<char>的顶部元素
- 如何填充闰年的元素
- 如何将矢量大小扩展一个元素并用变量填充它
- C++初始化/填充静态成员 std::数组元素到特定值
- 如何更改数组的大小并用自动化元素填充它
- 为什么我要获得元素填充元素的零长度
- 为什么getxattr会填充额外的元素
- C++2d数组,用文件中最后一个元素值填充所有元素
- 当结构数组在主线程中填充数据时,从结构数组的低索引元素读取是否线程安全
- 一种方式链接列表和不需要的第一个元素AFRTER填充
- 在c++中填充和移除向量和映射中的元素
- 从矢量中擦除元素,并向量填充结构
- 用相同的值填充了 wchar 数组元素
- 只有"double"元素的结构会有填充吗?
- 用固定数量的元素随机填充矢量的矢量
- 如何从填充.txt文件名的向量中选取随机元素C++
- 用列表中的元素填充向量
- 我拖放了一个Table View小部件(Qt).如何在填充元素后调整它的大小