Je ai le code suivant (mooched de here) pour randomiser un vecteur de 1500 valeurs, et je veux les placer dans un fichier texte, mais ne peut pas. Honnêtement, je ne comprends pas très bien comment ce code fonctionne, donc j'aimerais que quelqu'un m'explique comment cela fonctionne et/ou comment changer la sortie dans un fichier.Comment imprimer en utilisant ostream_iterator?
#include <iostream>
#include <random>
#include <algorithm>
#include <iterator>
#include <fstream>
int main() {
std::vector<int> v;
for (int i; i<1500; ++i){
v.push_back(i);
}
std::random_device rd;
std::mt19937 g(rd());
std::shuffle(v.begin(), v.end(), g);
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
return 0;
}
std :: '' ostream_iteartor est un itérateur renvoyant un objet from 'operator *()' qui écrit dans un flux lors de l'affectation, suivi du séparateur de chaîne. 'std :: copy()' affecte chaque élément de la séquence source à un objet dans la séquence de destination, c'est-à-dire que chaque objet est écrit dans le flux. Il suffit de remplacer 'std :: cout' par un objet de' std :: ofstream' ouvert pour écrire dans le fichier cible. –