Je le code suivant:Est-ce que le vieux vecteur est effacé? Si oui, comment et quand?
void foo()
{
vector<double> v(100,1); // line 1
// some code
v = vector<double>(200,2); // line 2
// some code
}
ce qui est arrivé au vecteur de la taille 100 après la deuxième ligne? Est-il effacé par lui-même? Si la réponse est oui, comment et quand elle est effacée? Par ailleurs, y a-t-il d'autres façons "faciles et propres" de changer le vecteur comme dans la ligne 2? Je ne veux pas des choses comme
v.resize(200);
for (int i=0; i<200; i++) v[i] = 2;
Une autre question. Que faire si le vecteur est un membre d'une classe:
class A{
public:
vector<double> data;
A(int size, double value)
{
data = vector<double>(size,value);
}
};
A object(10,1);
// some code
object = A(20,2); // ** What happened to the old object.data? **
// some code
Où puis-je trouver la description pour l'opérateur = de vecteur dans MSDN? – 8888q8888
MSDN ne définit pas la langue. Ni ce site [http://www.cplusplus.com/reference/], mais il devrait être un peu plus informatif. [Pour opérateur vectoriel =] (http://www.cplusplus.com/reference/stl/vector/operator=/). – GManNickG
Merci! Je l'ai! Désolé pour les questions en double. – 8888q8888