Hirdetés
- Az Enermax nagyon belehúzott a "tápozásba"
- Holdbázis és űrkupola az Egyesült Államok csillagászati terveiben
- Nem a képgenerálásnak van köze a képmegjelenítés egyenletességéhez
- A Windows 11 nem akarja ránk erőltetni az AI applikációkat – vagy mégis?
- A Minisforum kiegészítőjével száműzhetjük a VGA-t a házból
- AMD Navi Radeon™ RX 6xxx sorozat
- OLED TV topic
- Pendrive irás-olvasás sebesség
- Felköszöntötte a tíz éves DirectX 12-t a Microsoft
- Az ötlet jó, de milyen a kivitelezés? Teszten a Chieftec Kockája
- Milyen processzort vegyek?
- Milyen videókártyát?
- Utánajártunk, hogy melyik memória mennyire drágulhat
- Projektor topic
- Fujifilm X
Új hozzászólás Aktív témák
-
proof88
addikt
válasz
HussarF
#2617
üzenetére
nem, ilyenkor a vector-ok másolódnak, azaz új vector objektumok keletkeznek, az eredetik tartalmával, és a függvény a másolatokon fog dolgozni, nem az eredetiken. A vektorokat add át referenciaként, pl:
vector<double>& E_tarolo
vagy pl.:
vector<vector<double>>& hkmígy az eredeti, függvénynek megadott vektorokkal fog dolgozni a függvény, mert csak referenciát adsz át neki.
Ezzel máris megspórolsz egy csomó dinamikus memóriafoglalást, melyek eddig mindig megtörténtek bármelyik vector-os függvényed hívásakor (a komplett vektor lemásolása végett).Amúgy Debug vagy Release módban fordítasz? Utóbbiban gyorsabb lesz a futás, persze fejleszteni Debug-ban ajánlott, a jobb hibakeresés végett.
Igazából nem tudom, milyen célja van ezeknek a vektoroknak, ezek csak bemeneti paraméterek? Mert ha igen, és a függvény nem is módosít rajtuk, csak olvassa őket, akkor még a const-ot is odaírhatod eléjük, pl.:
void PhotoEffect(double *E1, int *sz_E, const vector<double>& E_tarolo)
Illetve ami még nem világos, hogy pl ennél a függvénynél az E1 ill. sz_E paraméterek valóban tömbökre mutatnak?
-
válasz
HussarF
#2617
üzenetére
"Meg a vector-okat, de azok is pointerként működnek, mint a tömbök, nem? vagy legalábbis nem hiszem, hogy az okozná a problémát"
Pedig de. Az std:vector<> az ugy mukodik, hogy amikor lemasolod, akkor a komplett adatstrukturat lemasolja.
(A QT containere pl. nem igy mukodnek, azok copy-on-write-ot csinalnak, de ez most csak mellekszal.)vagyis neked a kovetkezo kell pl:
void PhotoEffect(double *E1, int *sz_E, const vector<double> &E_tarolo)
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- iKing.Hu Apple iPhone 17 Pro Deep Blue ProMotion 120 Hz újszerű 100% akku Apple garancia 202
- 152 - Lenovo LOQ (15IRH8) - Intel Core i5-12450H, RTX 4060
- Készpénzes / Utalásos Számítógép felvásárlás! Személyesen vagy Postával!
- Xiaomi 11 Lite 5G NE 256GB, Kártyafüggetlen, 1 Év Garanciával
- DELL PowerEdge R740 rack szerver - 2xGold 6130 (16c/32t, 2.1/3.7GHz), 64GB RAM, 10Gbit HBA330, áfás
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest


