私の探求では:)できるだけ多くのSTLを使用するために、std::generateとstd::back_inserterを組み合わせて使用して、次のコードと同じことを行うことができるのではないかと思いました:
static const size_t nitems=1024*1024;
std::string mrbig;
for (size_t pos=0; pos<nitems; ++pos)
mrbig.push_back('a'+ (rand()%26));
私は試した
std::generate_n(std::back_inserter(mrbig),nitems,[](){return 'a'+(rand()%26);});
問題なく動作しているようですが、何かを台無しにしていないことを確認したいと思います。