User Tools

Site Tools


appunti3s:vector

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

appunti3s:vector [2018/04/25 07:55]
appunti3s:vector [2020/06/08 22:20] (current)
Line 1: Line 1:
 +====== 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 
 +    * <code>vector<double> voti;</code> {{ :appunti3s:vector0.png |}}
 +  * copia l'elemento passato e aggiorna la dimensione
 +    * <code>voti.push_back(6.5);</code> {{ :appunti3s:vector1.png |}}
 +  * copia in fondo l'elemento passato e aggiorna la dimensione
 +    * <code>voti.push_back(7.5);</code> {{ :appunti3s:vector2.png |}}
 +
 +<file c vector1.cpp>
 +// inserire alcuni voti in un vector:
 +#include <vector>
 +int main()
 +{
 +    std::vector<double> 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 ...
 +    }
 +
 +</file>
 +  * 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//:
 +
 +<file c vector2.cpp>
 +// inserire alcuni voti in un vector:
 +#include <vector>
 +#include <iostream>
 +int main()
 +{
 +    std::vector<std::string> 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 ...
 +}
 +</file>