2013-10-30 13 views

risposta

9

immagino da non inizializzato, vuoi dire che è di default inizializzato, vale a dire, un vettore vuoto, quindi

v.assign(n, 0.0); 

e

v.resize(n, 0.0); 

sia cambia la dimensione del vettore a n e tutti gli elementi a 0.0. Si noti che per i vettori non vuoti, di solito non sono gli stessi,imposta solo i nuovi elementi su 0.0.

13

assign imposta la dimensione di n e tutti i valori degli elementi a 0.0, mentre resize imposta la dimensione di n e solo nuova valori dell'elemento a 0.0.

Se v è vuoto in anticipo, è lo stesso, ma lo assign è probabilmente più chiaro.

1

Assign significa sostituire un vettore con nuove proprietà (dimensione ed elementi) Reszie significa tiene i vecchi dati e l'espansione del nuovo vettore con nuovi elementi questo caso il nuovo formato è maggiore di quello vecchio. altrimenti riduci le dimensioni ed elimina l'extra.

Eseguire il codice seguente due volte. Uno per assegnare il secondo per ridimensionare (basta decommentare il primo).

#include <iostream> 
#include <vector> 


int main() 
{ 
    std::vector<int> vec1; 


    vec1.assign(7,100);  
// vec1.resize(7, 100); 
    std::cout << "Size: " << vec1.size() << std::endl; 
    for (unsigned int i(0); i < vec1.size(); ++i) 
    { 
     std::cout << vec1[i] << std::endl; 
    } 
    vec1.resize(4,5); 
    // vec1.assign(4,5); 
    std::cout << "\nSize: " << vec1.size() << std::endl; 

    for (unsigned int i(0); i < vec1.size(); ++i) 
    { 
     std::cout << vec1[i] << std::endl; 
    } 

    vec1.resize(10,5); 
    //vec1.assign(10,5); 
    std::cout << "\nSize: " << vec1.size() << std::endl; 

    for (unsigned int i(0); i < vec1.size(); ++i) 
    { 
     std::cout << vec1[i] << std::endl; 
    } 

    std::cin.get(); 
    return 0; 
} 
+0

Perché ho un downvote? – CroCo

+2

Le risposte di solo collegamento non sono buone risposte. È necessario fornire contesto per i collegamenti. Verrà cancellato se non si migliora la risposta. –

+1

Molto meglio. È ancora un po 'prolisso; le altre risposte sono più chiare in virtù del fatto che sono più brevi. – MSalters