PDA

View Full Version : [c++] Aiuto programmino matrici


-Slash
28-11-2007, 19:59
ciao a tutti

il prof ci ha assegnato un programmino non troppo complesso che data una matrice qualsiasi quadrata dovrebbe calcolare la somma di tutte le diagonali, anche quelle minori, ovviamente o quelle in questa direzione \ o quelle in questa /

io ho fatto in questo modo




#include <iostream>



using namespace std;



int main() {

int numrighecolonne,

n, // numero totale elementi array diagonale

i, //contatore diagonale

righe, // contatore righe

colonne = 1; //contatore colonne



cout << "Inserire il numero di righe e colonne della matrice";

cin >> numrighecolonne;



n = (numrighecolonne * 2) - 1; // assegna il numero delle diagonali per il tipo di matrice scelta

i = n;



double totdiagonale[n+1]; //dichiara array che contiene la somma degli elementi delle diagonali



double matrice[numrighecolonne] [numrighecolonne]; // array matrice





// Inserisce tutti i valori per la matrice



for(int r = 1, r <= numrighecolonne, r++ ) {

for(int c = 1, c <= numrighecolonne, c++) {

cin >> matrice[r][c];

}

}


// somma gli elementi di matrici e li assegna all'array
for(int r = numrighecolonne, r <= 1, r-- ) {

righe = r;

while(righe <= numrighecolonne) {

totdiagonale[i] += matrice[righe][colonne]

righe++;

colonne++;

i--;

}

}


// stampa l'array
for(i = n, i > (n + 1)/2, i--)

cout << "Somma " << i << "° Diagonale" << endl;



return 0;



}


questo codice dovrebbe stampare le prime diagonali, a partire da quella di sotto in su, fino a quella principale, poi quelle di sopra dovrebbero essere facili da ottenere per la simmetria della matrice...

in pratica ho pensato di fare un cin di tutti gli elementi della matrice e di metterli in un array doppio, e di creare un altro array normale che contenesse le varie somme delle diagonali... poi per quanto riguarda la matrice ho ragionato in questo modo: parto dal primo elemento dell'ultima colonna che non ha una diagonale e salgo con un ciclo for diminuendo gli indicatori di riga, poi con un altro ciclo nidificato sommo in un elemento di un array gli elementi della diagonale, ottenuti aumentando di uno gli indicatori di righe e colonne fin quando l'indicatore di righe non supera il numero prestabilito(cioe quello totale di righe/colonne)

il programma non funziona perchè mi da errori di sintassi nei cicli for


main.cpp:47:2: warning: no newline at end of file
main.cpp: In function ‘int main()’:
main.cpp:26: error: expected initializer before ‘<=’ token
main.cpp:32: error: expected primary-expression before ‘for’
main.cpp:32: error: expected `;' before ‘for’
main.cpp:32: error: expected primary-expression before ‘for’
main.cpp:32: error: expected `)' before ‘for’
main.cpp:32: error: expected initializer before ‘<=’ token
main.cpp:42: error: expected primary-expression before ‘for’
main.cpp:42: error: expected `;' before ‘for’
main.cpp:42: error: expected primary-expression before ‘for’
main.cpp:42: error: expected `)' before ‘for’
main.cpp:42: error: expected `;' before ‘)’ token
main.cpp:45: error: expected primary-expression before ‘return’
main.cpp:45: error: expected `;' before ‘return’
main.cpp:45: error: expected primary-expression before ‘return’
main.cpp:45: error: expected `)' before ‘return’


e tra l'altro provando a fare anche programmi stupidissimi con il for mi da piu o meno gli stessi errori, quindi ne deduco che oltre agli eventuali(e molti presumo :asd:) errori logici, ne ho fatto anche qualcuno stupidissimo di sintassi :asd:

mi affido alla vostra enorme saggezza :O

wingman87
28-11-2007, 20:06
Devi usare i ; invece delle virgole dentro alle parentesi dei for, esempio:
for(int i=0;i<10;i++)

-Slash
28-11-2007, 20:19
Devi usare i ; invece delle virgole dentro alle parentesi dei for, esempio:
for(int i=0;i<10;i++)
ma che demente che sono :sofico:


ora non da piu nessun errore, solo dopo l'inserimento che funziona bene degli elementi della matrice il programma di chiude...

al momento il codice è questo

#include <iostream>
#include <cstdlib>

using namespace std;

int main() {
int numrighecolonne,
n, // numero totale elementi array diagonale
i, //contatore diagonale
righe, // contatore righe
colonne = 1; //contatore colonne

cout << "Inserire il numero di righe e colonne della matrice" << endl;
cin >> numrighecolonne;

n = (numrighecolonne * 2) - 1;
i = n;

double totdiagonale[n+1];

double matrice[numrighecolonne] [numrighecolonne];


// Inserisce tutti i valori per la matrice

for(int r = 1; r <= numrighecolonne; r++ ) {
for(int c = 1; c <= numrighecolonne; c++) {
cout << "Inserisci elemento " << r << c << endl;
cin >> matrice[r][c];
}
}

for(int r = numrighecolonne; r >= 1; r-- ) {
righe = r;
while(righe <= numrighecolonne) {
totdiagonale[i] += matrice[righe][colonne];
righe++;
colonne++;
i--;
}
}

for(i = n; i > (n + 1)/2; i--)
cout << "Somma " << i << "° Diagonale" << endl;

return 0;
system("PAUSE");
}

wingman87
28-11-2007, 20:30
Prova a mettere un cin a vuoto alla fine oppure un system("pause");

-Slash
28-11-2007, 20:35
Prova a mettere un cin a vuoto alla fine oppure un system("pause");
non è quello il problema purtroppo, continua a crashare, quindi devo aver fatto un errore logico :(

wingman87
28-11-2007, 20:46
Ma il System("pause"); l'hai messo dopo il return quindi non verrà mai eseguito...
Ma ti da un errore oppure non dice proprio nulla?

Maverick18
28-11-2007, 21:23
Occhio che le matrici e vettori hanno indici che partono da zero non da uno. Nei for devi partire da 0 e terminare il for un ciclo prima.(fino a numrighecolonne-1 quindi r<numrighecolonne)

-Slash
28-11-2007, 21:26
Ma il System("pause"); l'hai messo dopo il return quindi non verrà mai eseguito...
Ma ti da un errore oppure non dice proprio nulla?
si scusa, non me ne ero accorto e non sono abituato a metterlo perchè sto raramente su windows

con il system pause mi dice:

Somma 5 Diagonale
Somma 4 Diagonale

con scritto niente

ho provato anche a sostituire nel secondo ciclo for(il primo che assegna i valori alle matrici penso sia corretto perchè funziona) il while nidificato con un altro for nidificato, che mi sembra piu elegante, in questo modo


#include <iostream>
#include <cstdlib>

using namespace std;

int main() {
int numrighecolonne,
n, // numero totale elementi array diagonale
i, //contatore diagonale
colonne = 1; //contatore colonne

cout << "Inserire il numero di righe e colonne della matrice" << endl;
cin >> numrighecolonne;

n = (numrighecolonne * 2) - 1;
i = n;

double totdiagonale[n+1];

double matrice[numrighecolonne] [numrighecolonne];


// Inserisce tutti i valori per la matrice

for(int r = 1; r <= numrighecolonne; r++ ) {
for(int c = 1; c <= numrighecolonne; c++) {
cout << "Inserisci elemento " << r << " - " << c << endl;
cin >> matrice[r][c];
}
}

for(int r = numrighecolonne; r >= 1; r-- ) {
for(int righe = r; righe <= numrighecolonne; righe++) {
totdiagonale[i] += matrice[righe][colonne];
colonne++;
i--;
}
}

/* while(righe <= numrighecolonne) {
totdiagonale[i] += matrice[righe][colonne];
righe++;
colonne++;
i--;
}
*/

for(i = n; i > (n + 1)/2; i--)
cout << "Somma " << i << "° Diagonale" << endl;

system("PAUSE");
return 0;

}

wingman87
28-11-2007, 23:44
Ed è normale visto che hai scritto:
cout << "Somma " << i << "° Diagonale" << endl;
Hai dimenticato un pezzo...

cionci
29-11-2007, 09:34
Che io sappia non è lecito fare così:

double matrice[numrighecolonne] [numrighecolonne];

dovresti utilizzare l'allocazione dinamica.

Maverick18
29-11-2007, 12:46
Che io sappia non è lecito fare così:

double matrice[numrighecolonne] [numrighecolonne];

dovresti utilizzare l'allocazione dinamica.

Vero, numrighecolonne non è una costante.

trallallero
29-11-2007, 17:01
hai il logo Ubuntu ed usi system("PAUSE") ?

qualcosa non mi quadra :wtf:

-Slash
29-11-2007, 20:08
Ed è normale visto che hai scritto:
cout << "Somma " << i << "° Diagonale" << endl;
Hai dimenticato un pezzo...
:doh: ma perchè faccio questi stupidissimi errori di distrazione :doh:

Che io sappia non è lecito fare così:

double matrice[numrighecolonne] [numrighecolonne];

dovresti utilizzare l'allocazione dinamica.
Vero, numrighecolonne non è una costante.

mmm

però nel primo for mi sembra che funzioni, intendo in quello dell'inserimento dei valori... puo darsi in effetti che pero non memorizzi le variabili...

comunque nel caso noi sapessimo gia il numero di righe e colonne della matrice e quindi non ci fosse di mezzo l'allocazione dinamica(che penso si faccia in programmazione) l'algoritmo è giusto?
hai il logo Ubuntu ed usi system("PAUSE") ?

qualcosa non mi quadra :wtf:
infatti me l'hanno chiesto di metterlo, non l'avevo messo proprio per questo motivo: pur stando in quel momento su windows non sono abituato a metterlo perchè sto quasi sempre su linux

-Slash
30-11-2007, 14:35
ragazzi sto provando a riscrivere il programma con il template vector(anche se non l'abbiamo fatto)


#include <iostream>
#include <cstdlib>
#include <vector>

using namespace std;

int main() {
int numrighecolonne,
n, // numero totale elementi array diagonale
i, //contatore diagonale
colonne = 1; //contatore colonne

cout << "Inserire il numero di righe e colonne della matrice" << endl;
cin >> numrighecolonne;

n = (numrighecolonne * 2) - 1;

void inputVector(vector< double > &);
void outputVector(vector< double > &);

vector<double> mat(( numrighecolonne ), (numrighecolonne )); //vettore elementi matrice
vector<double> diag( n ); //vettore somma diagonali

cout << "Inserisci gli elementi della Matrice separati da uno spazio" << endl;
inputVector( mat );

i = diag.size();

for(int r = mat.size(); r >= 0; r-- ) {
for(unsigned int righe = r; righe <= mat.size(); righe++) {
diag[i] += mat[righe][colonne];
colonne++;
i--;
}
}

cout << "Le somme delle diagonali sono:" << endl;
outputVector( diag );

system("PAUSE");

return 0;
}


ma mi da errore alla riga evidenziata, precisamente questo errore:

invalid types 'double[int]' for array subscript

suggerimenti? :D

cionci
30-11-2007, 14:37
ragazzi sto provando a riscrivere il programma con il template vector(anche se non l'abbiamo fatto)


#include <iostream>
#include <cstdlib>
#include <vector>

using namespace std;

int main() {
int numrighecolonne,
n, // numero totale elementi array diagonale
i, //contatore diagonale
colonne = 1; //contatore colonne

cout << "Inserire il numero di righe e colonne della matrice" << endl;
cin >> numrighecolonne;

n = (numrighecolonne * 2) - 1;

void inputVector(vector< double > &);
void outputVector(vector< double > &);

vector<double> mat(( numrighecolonne ), (numrighecolonne )); //vettore elementi matrice
vector<double> diag( n ); //vettore somma diagonali

cout << "Inserisci gli elementi della Matrice separati da uno spazio" << endl;
inputVector( mat );

i = diag.size();

for(int r = mat.size(); r >= 0; r-- ) {
for(unsigned int righe = r; righe <= mat.size(); righe++) {
diag[i] += mat[righe][colonne];
colonne++;
i--;
}
}

outputVector( diag );

system("PAUSE");

return 0;
}


ma mi da errore alla riga evidenziata, precisamente questo errore:

invalid types 'double[int]' for array subscript

suggerimenti? :D

Cos'è la roba che ho evidenziato ??? Dichiarazioni di funzioni nel mezzo del codice ?

-Slash
30-11-2007, 15:02
Cos'è la roba che ho evidenziato ??? Dichiarazioni di funzioni nel mezzo del codice ?
si, le ho trovate sul libro(deitel&deitel) dove le consiglia di mettere e poi mi sono dimenticato di farle... comunque il codice completo è questo


#include <iostream>
#include <cstdlib>
#include <vector>
#include <iomanip>

using namespace std;

int main() {
int numrighecolonne,
n, // numero totale elementi array diagonale
i, //contatore diagonale
colonne = 1; //contatore colonne

cout << "Inserire il numero di righe e colonne della matrice" << endl;
cin >> numrighecolonne;

n = (numrighecolonne * 2) - 1;

void inputVector(vector< double > &);
void outputVector(vector< double > &);

vector<double> mat(( numrighecolonne ), (numrighecolonne )); //vettore elementi matrice
vector<double> diag( n ); //vettore somma diagonali

cout << "Inserisci gli elementi della Matrice separati da uno spazio" << endl;
inputVector( mat );

i = diag.size();

for(int r = mat.size(); r >= 0; r-- ) {
for(unsigned int righe = r; righe <= mat.size(); righe++) {
diag[i] += mat[righe][colonne];
colonne++;
i--;
}
}

cout << "Le somme delle diagonali sono:" << endl;
outputVector( diag );

system("PAUSE");

return 0;
}

void outputVector(vector<double> &array)
{
size_t j;

for( j = 0; j < array.size(); j++) {
cout << setw( 12 ) << array[j];

if(( j + 1 ) % 4 == 0)
cout << endl;

}
}
void inputVector( vector<double> &array )
{
for(unsigned int r = 1; r <= array.size(); r++ ) {
for(unsigned int c = 1; c <= array.size(); c++) {
cout << "Inserisci elemento " << r << " - " << c << endl;
cin >> array[r][c];
}
}
}

ora aggiungendo le funzioni mi da errore anche nell'altra parte in grassetto...

sempre lo stesso ossia: invalid types 'double[int]' for array subscript

poi non sono molto sicuro di come si dichiari un vector bidimensionale, o in generale multidimensionale, ed ho messo in rosso come l'ho dichiarato io in rosso... ma sul libro non è spiegato e quindi sono andato per intuizione diciamo :asd: ed anche sull'array.size finale, perchè essendo l'array bidimensionale come faccio a dirgli si prendere la "seconda" o la "prima" dimensione?

ps: inputVector è fatta dal libro e copiata da me, outputVector l'ho fatta io perchè mi serviva per un vector bidimensionale

grazie per l'estrema pazienza :stordita:

wizard1993
30-11-2007, 15:06
da quel che so io non credo si possano dichiarare vettori multidimensionali, ma un semplice array non funziona?

-Slash
30-11-2007, 15:16
da quel che so io non credo si possano dichiarare vettori multidimensionali, ma un semplice array non funziona?
mi hanno detto(e ricordo ci sia scritto anche sul deitel) che un array deve avere sempre come dimensione un valore costante. io il valore lo devo inserire con cin, e poi creare un array con per dimensione l'intero inserito in cin.

cionci
30-11-2007, 16:05
C'è l'allocazione dinamica per questo...in alternativa i vector vanno bene, ma per gestire una matrice con i vector devi lavorare con un solo indice (o creare un vector di vector) e ridimensionare il vector in ogni caso.

Ad esempio:

#include <vector>
#include <iostream>

using namespace std;

int main()
{
int rows = 6, columns = 6;

vector<double> v;
v.resize(rows * columns, 0.0);

for(int r = 0; r < rows; ++r)
{
for(int c = 0; c < columns; ++c)
cout << v[r * columns + c] << " ";
cout << endl;
}
}

wizard1993
30-11-2007, 16:52
mi hanno detto(e ricordo ci sia scritto anche sul deitel) che un array deve avere sempre come dimensione un valore costante. io il valore lo devo inserire con cin, e poi creare un array con per dimensione l'intero inserito in cin.

la soluzione si chiama puntatori; come ha già detto cionci

-Slash
30-11-2007, 17:30
mmm, ho visto un po' il programma del corso e vector non si fa, mentre invece l'allocazione dinamica è in programma... potreste farmi un esempio semplice di allocazione di memoria di una variabile,messa poi in un array? tipo abbiamo una variabile k che viene immessa da tastiera con cin e successivamente la variabile k è usata come indice di un array: array[k]

ho googlato un po' e la cosa che piu si avvicina a quello che devo fare che ho trovato è questa http://www.disp.uniroma2.it/users/buttarazzi/lezionisvolte/CPP3/CPP3.HTM

ma utilizza stdio.h :confused:

grazie ancora di tutto, dopo di questa mi tolgo dalle scatole :D

cionci
30-11-2007, 17:49
int righe = 6;
int colonne = 3;


double *matrice = new double[righe * colonne];


Per accedere all'elemento (r,c): matrice[r * colonne + c]

marko.fatto
30-11-2007, 18:32
int righe = 6;
int colonne = 3;


double *matrice = new double[righe * colonne];


Per accedere all'elemento (r,c): matrice[r * colonne + c]

Scusa la nubbiaggine ma così non è un vettore!? :mbe: :stordita:

wizard1993
30-11-2007, 18:38
no, è un array ad allocazione tramite puntatore

marko.fatto
30-11-2007, 18:46
no, è un array ad allocazione tramite puntatore

ma comunque un array monodimensionale... è possibile allocare dinamicamente un array multidimensionale senza ricorrere a quel "trucchetto"?

edit: sempre usando un puntatore...

cionci
30-11-2007, 18:51
Sì, ma c'è da lavorare un pochetto ;)

Lo facevo per farglielo più semplice...

double **m = new double * [righe];

for(int i = 0; i < righe; ++i)
m[i] = new double[colonne];

marko.fatto
30-11-2007, 19:10
Sì, ma c'è da lavorare un pochetto ;)

Lo facevo per farglielo più semplice...

double **m = new double * [righe];

for(int i = 0; i < righe; ++i)
m[i] = new double[colonne];

E per accederci? :fagiano:

cionci
30-11-2007, 19:27
m[i][j]

-Slash
30-11-2007, 19:51
grande! sono riuscito a fare il programma finalmente :D


#include <iostream>
#include <vector>
using namespace std;

int main() {
int righe,
colonne,
diagsize;

cout << "Inserire il numero di vettori della matrice quadrata" << endl;
cin >> righe;

colonne = righe;

diagsize = ( ( 2 * righe ) - 1 );

double **matrice = new double * [righe];

vector< double > diagonale( diagsize );

for(int i = 0; i < righe; ++i)
matrice[i] = new double[colonne];


for(int i = 0; i < righe; i++)
for(int j = 0; j < colonne; j++) {
cout << "Inserisci Elemento" << (i+1) <<" " << (j+1) << endl;
cin >> matrice[i][j];
}



for(int i = 0; i < righe; i++)
for(int j = 0; j < colonne; j++)
diagonale[righe-i+j] += matrice[i][j];

for(int i = 1; i <= diagsize; i++)
cout << "La somma della " << (i+1) << " diagonale e': " << diagonale[i] << endl;

system("PAUSE");
return 0;

}

funziona :D

solo l'array monodimensionale per le somme delle diagonali non lo riuscivo a fare con l'allocazione, quindi ho fatto un vector...

potresti spiegarmi questo codice


double **m = new double * [righe];

for(int i = 0; i < righe; ++i)
m[i] = new double[colonne];

funziona benissimo, ma non ho capito bene il ragionamento che c'è sotto :D

Maverick18
30-11-2007, 21:47
double **m = new double * [righe];

for(int i = 0; i < righe; ++i)
m[i] = new double[colonne];
[/code]
funziona benissimo, ma non ho capito bene il ragionamento che c'è sotto :D

Se non sbaglio alloca un vettore di puntatori double e lo fa puntare da m.
Poi alloca un vettore double per ogni puntatore double puntato da m.

cionci
01-12-2007, 09:00
Non sbagli.

banryu79
01-12-2007, 13:40
Anche se cionci e Maverick18 ti hanno già risposto ho pensato che poteva esserti di ulteriore aiuto uno schema visivo:



double **m = new double * [righe];

for(int i = 0; i < righe; ++i)
m[i] = new double[colonne];


a) double **m = new double * [righe];

l'dentificatore "m" viene definito come una variabile di tipo "Puntatore a puntatore a double", quindi viene inizializzato con l'allocazione dinamica di un array contenente un numero pari a "righe" di "Puntatori a double".

-----------------------------------------------------------------
Puntatore a puntatore a double.....Puntatore a double..........Double
-----------------------------------------------------------------
double **m ..............................double *(unnamed)..........double
-----------------------------------------------------------------
m ------------------------------> righe1 -------------> (double)
|
| -------------------------------> righe2 -------------> (double)
|
| -------------------------------> righeN -------------> (double)


b) m[i] = new double[colonne];

Sappiamo che "m" (Puntatore di puntatore a double) adesso punta ad un array di elementi Puntatore a double
Viene quindi utilizzato un ciclo per assegnare ad ognuno di quei Puntatori a double un array di double.

m----->righe1..........righe2........righeN
...........|................|..............|.
...........|................|..............|.
...........V................V.............V.
..............................................
...........double[]......double[]......double[]


Spero ti sia utile,
Ciao :)

-Slash
02-12-2007, 23:15
Grazie per la spiegazione esaustiva :D

ho trovato anche il modo per farlo con vector di vector


vector<int> m( matsize );
vector<vector<int> > matrice( matsize,m );


per accederci basta il solito matrice[i][j]

potrebbe essere utile a qualcuno :)

cionci
03-12-2007, 01:55
Grazie per la spiegazione esaustiva :D

ho trovato anche il modo per farlo con vector di vector


vector<int> m( matsize );
vector<vector<int> > matrice( matsize,m );


per accederci basta il solito matrice[i][j]

potrebbe essere utile a qualcuno :)
Non ci sono quei costruttori ;) In ogni caso dopo vanno ridimensionati i singoli vector.

-Slash
03-12-2007, 21:22
Non ci sono quei costruttori ;) In ogni caso dopo vanno ridimensionati i singoli vector.
cioè?

comunque ho fatto vedere oggi il programma al professore, mi ha quasi insultato dicendo che devo risolvere i problemi con gli strumenti che abbiamo :rolleyes:

bah, ma che modi :rolleyes:

mi ha detto che lo stesso programma si poteva fare senza allocazione o vector, dichiarando i valori delle diagonali come const int. tralasciando la sua ignoranza(e soprattutto quella del suo assistente, un ingegnere che non sa come imporre l'esistenza di un triangolo e non conosce getchar) sul fatto che non posso dichiarare(almeno con i nostri strumenti) un const int senza inizializzarlo e peggio ancora poi inserirlo da cin :banned: tutto sommato poi dichiarando la dimensione della matrice come int funziona senza allocazione dinamica...


#include <iostream>
#include <cstdlib>

using namespace std;

int main() {
int matsize, // Dimensione della Matrice quadrata
diagsize; // Numero di diagonali della matrice

cout << "Inserire il numero di vettori della matrice quadrata" << endl;
cin >> matsize;

diagsize = ( 2 * matsize )-1;

double matrice[matsize] [matsize];
double diagonale[diagsize];

// Inserisce gli elementi
for(int i = 0; i < matsize; i++)
for(int j = 0; j < matsize; j++) {
cout << "Inserisci Elemento " << (i+1) <<" " << (j+1) << endl;
cin >> matrice[i][j];
}


// Calcola le Somme della matrice
for(int i = 0; i < matsize; i++)
for(int j = 0; j < matsize; j++)
diagonale[matsize-i+j] += matrice[i][j];

// Stampa il risultato
for(int i = 1; i <= diagsize; i++)
cout << "La somma della " << (i+1) << " diagonale e': " << diagonale[i] << endl;

system("PAUSE");
return 0;

}

mi ha detto anche che non posso calcolare il numero di diagonali algebricamente perchè non funziona poi, ma funziona lo stesso :fagiano:

cionci
04-12-2007, 00:20
cioè?
Cioè il codice che hai scritto non funziona perché non esistono costruttori di vector che prendono in ingresso quei parametri.
Puoi fare però così per creare una matrice R x C:

vector< vector<int> > m;

m.resize(R);
for(int i = 0; i < R; ++i)
m[i].resize(C, 0);

-Slash
04-12-2007, 15:07
Cioè il codice che hai scritto non funziona perché non esistono costruttori di vector che prendono in ingresso quei parametri.
Puoi fare però così per creare una matrice R x C:

vector< vector<int> > m;

m.resize(R);
for(int i = 0; i < R; ++i)
m[i].resize(C, 0);

nono, con i vector come l'avevo fatto io funziona bene :D

ho letto la guida qui su come creare vector di vector

http://www.dcs.bbk.ac.uk/~roger/cpp/week7.htm

cionci
04-12-2007, 15:48
Azzz...avevo letto male...non avevo visto che m era il vettore sopra.
in effetti così va bene.