Grazie per la risposta. Ho dato un'occhiata alle tre soluzioni. Quello che vorrei fare è costruire una classe che chiamerò database nella quale ci voglio mettere dentro un vettore di puntatori i quali ognuno punta ad un vettore. Dentro la classe ci metto anche una funzione in grado di importare i dati da un csv dentro i vettori (i quali potranno essere di diverso tipo). Poi diverse funzioni che mi permetteranno di gestire il database un po' come si fa in SQL (ordinamenti,merge, group by ecc..). La classe che costruisco voglio quindi che sia generica ovvero che possa accogliere dati di diverso tipo.
Non conosco bene il C++ e non so se questo può essere un modo buono di approcciare il problema.
Se hai suggerimenti in merito sono ben accetti. Ho iniziato a scrivere questo seguendo il tuo consiglio.
class database
{
public:
void *pvars[100];
};
database tab_reddito;
vector<string> persona(2);
persona[0]="Mario Rossi";
persona[1]="Luigi Bianchi";
vector<int> reddito(2);
reddito[0]=3000;
reddito[1]=2500;
tab_reddito.pvars[0]=&persona;
tab_reddito.pvars[1]=&reddito;
vector<int> *pInt = static_cast<vector<int>*>(tab_reddito.pvars[1]);
cout << (*pInt)[1] << endl;