如何用 <bool>0 和 1 随机填充矢量<矢量>
How to randomly fill vector<vector<bool>> with 0s and 1s
用0和1随机化vector<vector<bool>>
的最简单方法是什么?我没能在网上找到答案,所以如果可以的话,请提供参考,我将不胜感激。
谢谢。
LIVE DEMO
#include <algorithm>
#include <iterator>
#include <iostream>
#include <ostream>
#include <cstdlib>
#include <vector>
using namespace std;
#define let const auto&
int main()
{
let size = 128;
let inner_size_max = 16;
vector<vector<bool>> vs(size);
for(auto &v : vs)
generate_n(back_inserter(v),rand()%inner_size_max,[]
{
return rand()%2==0;
});
for(let v : vs)
{
for(let b : v)
cout << b;
cout << endl;
}
}
现场演示
我稍微倾向于使用可重用的函数来生成单个"行",然后根据需要创建完整的"矩阵"。运行时几乎与其他答案相同(由"活动工作区"确定(运行时大约0.1秒)
#include<iostream>
#include<vector>
#include<cstdlib>
#include<algorithm>
// this is a transparent, reusable function
template<size_t N>
std::vector<bool> generate_bits() {
std::vector<bool> bits;
bits.reserve(N);
for(size_t k=0; k<N; k++) {
bits.push_back(rand() % 2 == 0);
}
return stdbits; // rvo, or use std::move
}
int main() {
std::vector<std::vector<bool>> bits;
bits.resize(128);
std::generate(bits.begin(), bits.end(), generate_bits<16>);
// stole the cool printing statement
for(auto&& v : bits) {
for(auto&& b : v) {
std::cout<<b;
}
std::cout<<std::endl;
}
return 0;
}
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- EASTL矢量<向量<int>>连续的
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- C :对矢量进行排序&lt; struct&gt;(结构有2个整数)基于结构的整数之一
- 明确的专业化“ CheckIntmap&lt;&gt;”实例化
- 什么是模板&lt;&gt;inline bla bla
- 编辑C Qlist&lt; object*&gt; gt;QML代码和一些QML警告中的模型
- eigen :: llt&lt;eigen :: matrixxd&gt;具有不完整的类型
- 错误,包括&lt; ctype&gt;在原子上使用C 11
- std::vector<;uint8_t>;当C++11/14启用时,手动复制而不是调用memcpy
- 如何加入向量&lt; int&gt;到C 中的单个INT
- 是std :: set&lt; std :: future&gt;不可能存在
- 是numeric_limits&lt; int&gt; :: is_modulo从逻辑上矛盾
- opencv 2.4.7在iOS错误背景_segm.hpp #include&lt; list&gt;未找到
- 在修改列表后,std :: list&lt; t&gt; :: end()的值是否会更改
- ///<评论></评论>在Visual Studio中