Kezdőoldal » Számítástechnika » Programozás » C++ ban hogyan hozok létre...

C++ ban hogyan hozok létre egy n elemű tömböt (nem vektor!!!) dinamikusan, úgy hogy minden eleme 1 legyen?

Figyelt kérdés

n -t már beolvastuk

Mármint van erre megoldás, vagy mindenképp kell egy for ciklus ahol feltöltöm az összes elemet ugyanarra a számra?

Mindegyik elem 1 kellene legyen.

Az az érdekes hogy


int * t = new int[n] {0}


így például működik, mind az n elem 0 lesz, de ha {1}-t írok akkor csak a legelső elem lesz feltöltve 1-el. Mármint, profik, ha erre nincs megoldás akkor csak írjátok, hogy nincs és akkor inicializálom az összes elemet egy for ciklussal, csak így nem igazán tűnik praktikusnak...



2020. szept. 28. 18:29
 1/6 anonim ***** válasza:
100%

Mindenkeppen fel kell toltened, max for ciklus helyett hasznalhatsz pl. std::fill_n-t.


"csak így nem igazán tűnik praktikusnak"


Eleve nem praktikus C++-ban tombot hasznalni vektor helyett, hacsak nincs ra kimondottan valami okod.

2020. szept. 28. 18:45
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
0%

így például működik, mind az n elem 0 lesz


Dehogy működik. :/

Csak alapban nullára inicializálja, vagy nem inicializálja, de tiszta memórialapot kapott a tömb. Az meg alapban nulla tartalmú.

2020. szept. 28. 18:51
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
Nincs, muszáj ciklust használni hozzá. Többek között pont azért vannak a különböző standard containerosztályok (mint pl a vector) hogy a tömbkezelés kellemetlenségeit kiküszöbölje, és kevesebb hibalehetőséged maradjon.
2020. szept. 28. 19:26
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:
56%
Esetleg próbáld a memset-et.
2020. szept. 29. 00:21
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:
93%

#4 Nem fog működni. A memset byte-okat ír, az int pedig jellemzően legalább 4 byte. Szóval ha memsettel próbálná beállítani az értéket, akkor a tömb nem 1-esekkel lenne tele, hanem (4 byte-os int esetében) 16843009 értékekkel, mivel az int mind a 4 byte-ja 1-re lenne átírva.


Nincs mese, marad a ciklus.

2020. szept. 29. 20:28
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:

GCC fordítóval, statikusan(!!) foglalt esetben meg lehet csinálni.

[link]

Amúgy ciklus. :(

2020. szept. 30. 00:23
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!