.[ ČeskéHry.cz ].
kopirovani dynamicke array
Jdi na stránku Předchozí  1, 2
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
manutara



Založen: 02. 01. 2012
Příspěvky: 81
Bydliště: Kosice SVK

PříspěvekZaslal: 10. červenec 2012, 11:16:25    Předmět: uffff Odpovědět s citátem

zdravim,

hmm, mno mne osobne sa nepaci miesanie C a C++ dohromady. najskor,
by som sa rozhodol co pouzijem.

stale som si nevsimol ``definiciu'' co treba urobit (co chces urobit) a nedari
sa to. takto sa to zvrhava len na hadzajnie nejakeho kodu do plena. s C by
som vedel poradit, ale ked vidim
kód:
new
,
kód:
delete
,
kód:
std::??
a tak podobne dostavam sa do depresii hehe, zatim...
_________________
hadam to OpenGL este par rokov prezije
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Aroidzap



Založen: 14. 11. 2011
Příspěvky: 68

PříspěvekZaslal: 10. červenec 2012, 11:23:36    Předmět: Odpovědět s citátem

rezna napsal:
na co delete? - vzdyt tam nikde nemas pointery - takze se to uvolni samo

ale jinak prosimte otevri si knihu o C/C++ a zacni nekde od zacatku - mas zasadni mezery a brzo shoris jako papir


jezis diky, ja jsem vul vubec jsem si toho nevsim, vsem se omlouvam
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 610

PříspěvekZaslal: 10. červenec 2012, 11:35:14    Předmět: Odpovědět s citátem

Aroidzap napsal:
no ale kdyz ho chci smazat (ne na konci programu) a uvolnit tim pamet, tak to udelam jak?

No zavoláš na něm clear(). To sice změní velikost na nulu, ale ne kapacitu.
Pokud chceš mít jistotu, tak použij tohle (swap trick):
kód:

std::vector<ABC>().swap(array[i]);
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1827

PříspěvekZaslal: 10. červenec 2012, 11:57:22    Předmět: Odpovědět s citátem

Mozes snad bezpecne zavolat aj std::vector::resize(0) (alebo resize(1)), ak trvas na "rucnom" uvolneni pamati. "Swap trick" na nulovanie vektoru je fakt nechutna prasacina a zabudni, ze si to niekedy videl Smile
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 610

PříspěvekZaslal: 10. červenec 2012, 12:06:08    Předmět: Odpovědět s citátem

resize(0) neuvolní paměť, swap je sice prasárna, ale alespoň je to něco, co funguje. btw. resize(0) je určitě větší prasárna, než clear() Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1827

PříspěvekZaslal: 10. červenec 2012, 12:21:42    Předmět: Odpovědět s citátem

Sorry, myslel som std::vector::reserve(), ale ako ukazuje dokumentacia, ani ten nedokaze znizovat kapacitu Sad Ani clear() + reserve(0) nefunguje Sad Takze ostava bud swap alebo manualne vyvolanie destruktora (+rekonstrukcia)...
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Aroidzap



Založen: 14. 11. 2011
Příspěvky: 68

PříspěvekZaslal: 10. červenec 2012, 12:27:00    Předmět: Odpovědět s citátem

uz mi to vsecko jede, a zda se, ze to vyhovuje mojim pozadavkum Wink dik vsem
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
(CZ)genius



Založen: 28. 07. 2007
Příspěvky: 85
Bydliště: Neratovice

PříspěvekZaslal: 10. červenec 2012, 16:36:09    Předmět: Odpovědět s citátem

http://en.cppreference.com/w/cpp/container/vector/shrink_to_fit Wink (C++11, ale lepsi nez nic..)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Aroidzap



Založen: 14. 11. 2011
Příspěvky: 68

PříspěvekZaslal: 10. červenec 2012, 18:47:56    Předmět: Odpovědět s citátem

pekne... akorat to asi nemam jak zkompilovat... a visual studio uz mi trochu prirostlo k srdci
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 10. červenec 2012, 19:07:50    Předmět: Odpovědět s citátem

fakt si kup nejaku knizku pretoze naucit sa poriadne C++ sa len z webu neda. minimalne teda neviem o ziadnom dostatocne kvalitnom texte ktory by sa C++ systematicky venoval. v cestine na 100% nie je.

inak je to jednoduche tam kde je new treba mat aj niekde delete. pripady kedy to delete netreba su vynimky a nie pravidlo. takymi vynimkami su napriklad std::unique_ptr/shared_ptr alebo Qt objekty.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna