PDA

Visualizza la versione completa : copiare valori di un vettore in un altro c++


spiderman123
11-06-2008, 11:56
Salvee qualcuno saprebbe dirmi dati due vettori e le loro due dimensioni come faccio a copiare gli elementi di v2 nel primo vettore???vi prego datemi una mano,saluto.

mondobimbi
11-06-2008, 12:06
un vettore stile C o uno STD del C++. Devi appendere o sovrascrivere gli elementi ?
ciao
sergio

spiderman123
11-06-2008, 12:15
ad esempio se ho un v1(1,5,7,3,4,6) e un v2(8,4,6,7,2,1) il vettore v1 deve essere formato da (1,1,2,3,4,4,5,6,6,7,7,8).poi a ordinarli lo so fare il problema inserire quelli di v2 in v1.

XWolverineX
11-06-2008, 12:20
Se usi i vector della STL non ci vuole veramente niente; diverso il discorso se usi gli array veri e propri.

mondobimbi
11-06-2008, 12:22
se devi appendere v2 in v1 prima di tutto devi cambiare la dimensione del vettore v1 da size_vi a size_v1 + size_v2, per poter contenere tutto.
Per far questo devi crearti prima un vettore di appoggio che abbia la dimensione size_v1+size_v2 copiare in questo tutto v1 e quindi tutto v2


...
v = new int [size_v1 + size_v2];
for (int i = 0; i < size_v1; ++i)
v[i] = v1[i];
for (int i= 0; i < size_v2; ++i)
v[i + size_v1] = v2[i];

// in v hai il merging dei due vettori

...

spiderman123
11-06-2008, 12:30
grazie questa parte qua gia l'avevo fatta ma ora per la copiatura che codice devo fare???

spiderman123
11-06-2008, 13:13
io per copiare i valori avevo pensato cosi:

void inserisci(int v1[],int v2[],int n1,int n2,int vett[])

{
int i;
int j;
j=n1+n2;
for (i=0;i<n1;i++)
vett[i]=v1[i];
for (i=0;i<n2;i++)
{vett[j] = v2[i];
if(vett[j]<v2[i])
{vett[i+1]=v2[i];}
else
{i++;}
}}

XWolverineX
11-06-2008, 13:21
io farei un gran memcpy

spiderman123
11-06-2008, 13:21
Cio cosa sarebbe scusa?

oregon
11-06-2008, 14:10
memcpy
http://www.cplusplus.com/reference/clibrary/cstring/memcpy.html

Loading