Ich habe Vektor wie folgt v = {1, 0, 1} Ich möchte jedes Element mit anderen tauschen und einen Vektor jedes Mal zurückgeben, wenn die beiden Elemente sägten. Für dieses Beispiel sollte die Lösung lauten: v1 = {0, 1, 1}, v2 = {1, 0, 1}, v3 = {1, 0, 1}. Ich habe wie sein aber ich dit das gleiche Ergebnis:Tauschen Sie ein Element mit allen anderen in Vektor
for (size_t i = 0; i < tempSol.size() - 1; ++i) {
for (size_t j = i + 1; j < solution.size(); ++j) {
swap(tempSol[i], tempSol[j]);
listSolution.push_back(tempSol);
}
}
Das Ergebnis ist: v1 = {0, 1, 1}, v2 = {1, 1, 0}, v3 = {1, 0, 1} der Unterschied in Vektor v2. Vielen Dank für Ihre Hilfe
Ihre Frage ist unklar. Sie haben drei Elemente im Vektor. Welche Gegenstände tauschen Sie aus? Wann tauscht ihr sie? Ihre "falsche" Antwort macht so viel Sinn wie Ihre "richtige" Antwort. – PaulMcKenzie
Ich beginne mit dem firt Element und vertausche es mit allen anderen, zum Beispiel i = 0, j = 1 Ich tausche das Element swap (tempSol [0], tempSol [1]) –
Suchen Sie nach 'std :: next_permutation '? (http://en.cppreference.com/w/cpp/algorithm/next_permutation) – Kevin