Kezdőoldal » Számítástechnika » Programozás » C++-ban több tömbből az...

C++-ban több tömbből az elemeket hogy bírom átmásolni egyetlen tömbbe?

Figyelt kérdés

2015. ápr. 22. 22:13
 1/7 anonim ***** válasza:

Létrehozol egy akkora tömböt amilyen a másik 2 tömb nagysága.

ciklussal végigmész mind 2 tömbön és belerakod a 3. tömben egymás után :)

2015. ápr. 22. 22:23
Hasznos számodra ez a válasz?
 2/7 iostream ***** válasza:
Amit #1 mondott, csak ciklus helyett std::copy
2015. ápr. 23. 10:28
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

Inkább használj vektort, egyszerűbb és jobb:


template<class T>

std::vector<T> Merge(const std::vector<T> &a, const std::vector<T> &b)

{

std::vector<T> m(a.size() + b.size());

std::copy(a.begin(), a.end(), m.begin());

std::copy(b.begin(), b.end(), m.begin() + a.size());

return m;

}


template<class T>

T* Merge(const T a[], const T b[], unsigned int size1, unsigned int size2)

{

T *m = new T[size1 + size2];

std::copy(a, &a[size1], m);

std::copy(b, &b[size2], m + size1);

return m;

}

2015. ápr. 23. 12:44
Hasznos számodra ez a válasz?
 4/7 iostream ***** válasza:
#3 Ez nem jó, mert inicializál egy rakás elemet, amit aztán felülírsz. Inkább használj reserve-t és back_inserter-t. Intnél persze lehet, hogy gyorsabb egybe másolni, de senki nem mondta, hogy intekről van szó.
2015. ápr. 23. 13:42
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

Jogos.

De nagy adatnál például képnél ha sokszor kell ilyet végrehajtani, jobb ha csak a pointert tárolja a vektorban és azt dobálgatja ide-oda.

2015. ápr. 23. 14:33
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:

Én ellenzem a tömb elem címének a felhasználását, mert könnyebb elszúrni. Szerintem jobb ciklussal mint a copy-val.


template<typename T>

T* merge(T *a, size_t na, T *b, size_t nb)

{

T *c = new T[na + nb];

size_t j = 0;

for(size_t i = 0; i < na; i++) {

c[j] = a[i];

j++;

}

for(size_t i = 0; i < nb; i++) {

c[j] = b[i];

j++;

}

return c;

}

2015. ápr. 23. 14:58
Hasznos számodra ez a válasz?
 7/7 iostream ***** válasza:
Ez valóban sokkal tömörebb, szebb, olvashatóbb, mint két copy hívás. Grat.
2015. ápr. 23. 16:28
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!