Unrue
02-04-2009, 08:39
Ciao a tutti,
vorrei inserire in un vector elementi di questo tipo:
typedef pair<string, int[3] > dirAttributes;
vector< dirAttributes > check_dir_names;
poi ad esempio:
int attr[3];
a[0] = 0;
a[1] = 1;
a[2] = 2;
string str("ciao");
poi in una funzione apposita:
void insertelems(string str, int[] attr){
dirAttributes dirAttr(str,attr);
check_dir_names.push_back(dirAttr);
}
è lecita una cosa del genere? Lui fa una deep copy dell'array di interi o copia solo il riferimento? Perchè se mi copia il riferimento e l'array che passo è locale in un punto del codice poi fa casino.
vorrei inserire in un vector elementi di questo tipo:
typedef pair<string, int[3] > dirAttributes;
vector< dirAttributes > check_dir_names;
poi ad esempio:
int attr[3];
a[0] = 0;
a[1] = 1;
a[2] = 2;
string str("ciao");
poi in una funzione apposita:
void insertelems(string str, int[] attr){
dirAttributes dirAttr(str,attr);
check_dir_names.push_back(dirAttr);
}
è lecita una cosa del genere? Lui fa una deep copy dell'array di interi o copia solo il riferimento? Perchè se mi copia il riferimento e l'array che passo è locale in un punto del codice poi fa casino.