====== Vector ====== Sono la struttura dati più comune e più utile, per memorizzare un insieme di valori dello stesso tipo. Ad esempio per memorizzare 10 voti, invece di usare 10 variabili (di tipo semplice), con 10 nomi diversi, si può usare una sola variabile di tipo strutturato. ===== I vector sono degli oggetti ===== Per poter utilizzare tutte le utili funzioni fornite dai //vector// è necessario conoscere la programmazione orientata agli oggetti... La struttura di un //vector// può essere descritta facendo alcuni esempi: * creare la struttura ed inizializzarla correttamente * vector voti; {{ :appunti3s:vector0.png |}} * copia l'elemento passato e aggiorna la dimensione * voti.push_back(6.5); {{ :appunti3s:vector1.png |}} * copia in fondo l'elemento passato e aggiorna la dimensione * voti.push_back(7.5); {{ :appunti3s:vector2.png |}} // inserire alcuni voti in un vector: #include int main() { std::vector voti; // per inserire dei voti in formato double std::cout << "inserire voti terminando con uno zero" double temp=-1.0; // una variabile per contenere un solo voto while (temp) { std::cin >> temp; // cin legge un valore e lo mette in temp voti.push_back(temp); // memorizzo il valore di temp nel vector } // ... aggiungere eventuale elaborazione dei voti ... } * Non è necessario specificarne la dimensione nella dichiarazione * Sono allocati in modo dinamico, ma non se ne deve preoccupare direttamente il programmatore * I dati sono allocati in modo continuo * L'accesso ai dati è di tipo diretto Un //vector// può contenere qualsiasi tipo di oggetti, ad esempio //string//: // inserire alcuni voti in un vector: #include #include int main() { std::vector parole; // per inserire delle parole in formato string std::cout << "inserire parole terminando con invio/n"; std::string temp=" "; // una variabile per contenere una parola while (temp!="") { std::cin >> temp; // cin legge una parola e la mette in temp parole.push_back(temp); // memorizzo la parola in temp nel vector } // ... aggiungere eventuale elaborazione ... }