est sous l'extrait, je tiens à souligner la variable first
à la variable second
sans copier le vecteur:Modifier un vecteur en changeant son pointeur ne fonctionne pas en C++?
#include <iostream>
#include <vector>
std::vector<int> second (4,100);
void modify(std::vector<int>* i) {
i = &second;
}
int main()
{
std::vector<int> first; // empty vector of ints
modify(&first);
for (std::vector<int>::iterator it = first.begin(); it != first.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
La sortie est vide, alors que je pensais que la sortie soit 100 100 100 100
.
Est-ce que quelqu'un a des idées sur pourquoi je ne peux pas modifier le vecteur comme ça?
Pouvez-vous "modifier" un 'int' en changeant son pointeur de la même façon? Peut-être que cela n'a rien à voir avec les vecteurs? – juanchopanza