Codice:Perché l'assegnazione valarray non ridimensiona l'assegnatario per la documentazione?
#include <valarray>
#include <iostream>
using namespace std;
int main()
{
valarray<int> v0(2, 4);
valarray<int> v1;
v1 = v0;
cout << "v0.size: " << v0.size() << endl;
cout << "v1.size: " << v1.size() << endl;
cout << "v0[0]: " << v0[0] << endl;
cout << "v1[0]: " << v1[0] << endl;
}
uscita:
v0.size: 4
v1.size: 0
v0[0]: 2
Segmentation fault
Per l'assegnazione:
v1 = v0;
penserei il costruttore:
valarray<T>& operator=(const valarray<T>& other);
dovrebbe essere utilizzato un Secondo lo documentation, credo che v1 debba essere ridimensionato e il contenuto di v0 copiato in esso, elemento per elemento. Quindi cosa sta succedendo davvero?
$ g++ --version
g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
Quale piattaforma, compilatore, versione, implementazione della libreria standard ecc. State usando? Funziona bene [qui] (http://coliru.stacked-crooked.com/a/dc1620e9787f0d13). – Praetorian
Sei sicuro che questo è il tuo output? Il testo non corrisponde nemmeno alle stringhe che hai passato a 'cout'. –
@Bryant L'output mostrato non corrisponde al codice. –