Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C++ Kopírovanie dynamicky alokovaného vektora do iného vektora

Experimentujem s C++ snažím sa skopírovať dynamicky alokovaný vector<char> obsahujúci binárne dáta do iného vector<char>.

Použil som na to funkciu std::copy a skúsil som to aj so smart pointerom aj s bežným pointerom.

Zdroják je tu: https://pastebin.com/40ZBdDKD

1. Zistil som, že keď je cieľový vektor menší ako zdrojový, tak ho musím zvačšiť... Prečo je to tak? Nedá sa nejako docieliť, aby som ho nemusel resizovať, aby si ho resizla priamo kopírovacia funkcia? Alebo treba použiť inú funkciu, ktorá kontroluje veľkosť cieľového vektora? Všimol som si ešte, že sa na kopírovanie používa std::assign a taktiež konštruktor triedy vektor obsahuje možnosť klonovania. Čo sa používa najviac?

2. Ako sa emulujú moduly v C++? Viem že C++ od verzie 20 bude obsahovať plnohodnotné moduly ale čo do vtedy? (ja mám len 17ku) Mám použiť statický class / struct so statickými metódami?

3. Všimnite si "modul" binarydata_console funkciu overloadujem extra pre vector<char>* a extra pre shared_ptr<vector<char>> nedalo by sa to nejako automatizovat pomocou templatov?

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny