我想将for循环组合成单个for循环.我怎样才能做到这一点?
我想循环遍历a到z,以及A到Z,如下所示:
char ch;
for (ch = 'A' ; ch <= 'Z' ; ch++ )
{
}
for (ch = 'a' ; ch <= 'z' ; ch++ )
{
}
Run Code Online (Sandbox Code Playgroud)
但是使用单个循环.
我如何创建一个充满随机数的向量?
通常的代码是:
std::mt19937 rng {std::random_device{}()};
std::uniform_int_distribution<int> dist {1, 52};
std::vector<int> vec(10);
std::generate(begin(vec), end(vec), [&]{return dist(rng);} );
Run Code Online (Sandbox Code Playgroud)
然而,这意味着每个值都被触摸两次:一旦设置为零,然后设置为随机值(即使在O3处)
那么如何尽可能高效地做到这一点呢?