我搜索并找到一些随机数字,但是我不认为它适用于字符串。...例如,我在数组中有一个这样的列表:
string restaurants[] = {"Texas Roadhouse,","On The Border,","Olive Garden,","Panda Express,","Cracker Barrel,","IHOP,","Panda Express,","Pei Wei"};
我该如何将其随机化或将它们全部交换并弄乱呢?
最佳答案
如果没有必要,不要重新发明轮子。
std::random_shuffle(std::begin(restaurants), std::end(restaurants));
在C ++ 03中,无需实现自己的
begin
和end
:std::random_shuffle(restaurants, restaurants + sizeof restaurants / sizeof restaurants[0]);
请注意,除非您使用诸如
std::vector
之类的东西,否则不要通过引用将其传递给函数来执行此操作,则需要将后者与其他size参数一起使用。