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.

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<double> voti;

  • copia l'elemento passato e aggiorna la dimensione
    • voti.push_back(6.5);

  • copia in fondo l'elemento passato e aggiorna la dimensione
    • voti.push_back(7.5);

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 ...
    }
  • 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:

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 ...
}
  • appunti3s/vector.txt
  • Last modified: 2018/04/25 07:55
  • (external edit)