-3
我只是不能混淆我的話,它讓我得到了任何我不想要的東西。 我沒有錯誤,沒有警告,但磨片,我把我的std字符串:: out_of_range如何混合一個詞? C++
#include <iostream>
#include <string>
#include <random>
#include <chrono>
using namespace std;
string melangeLettre(string mot);
int main()
{
cout << "Saisissez un mot mystere: \n> ";
string motMystere{};
cin >> motMystere;
cout << "Quel est ce mot ?\n";
string const newMot{melangeLettre(motMystere)};
cout << newMot << endl;
return {0};
}
string melangeLettre(string mot)
{
size_t random = chrono::system_clock::now().time_since_epoch().count();
mt19937 gen{random};
string newMot{};
for (unsigned int i{}; i < mot.size(); ++i)
{
uniform_int_distribution<> getNbr(0, mot.size());
int const alea{mot[getNbr(gen)]};
newMot.push_back(alea);
mot.erase(alea, 1);
}
return newMot;
}
的問題是「melangeLettre」功能,請有人能幫助我解決呢?
如果你想爭奪你應該使用['的std :: random_suffle()'](字符串http://en.cppreference.com/w/ cpp/algorithm/random_shuffle) – NathanOliver
是算法包含,但我不想使用ready函數。 – user3813238
那你得到了什麼結果?如果不是錯誤或警告?這些琴絃是不是洗牌?他們是空的還是重複的? –