Tömb elemszámának lekérdezése C++?
Most ismerkedek a nyelvel, és jelenleg ezt a problémát nem tudom áthidalni, hogyan kellene ?
Van beépített utasítás ?
@#3:
Bocs, nem is figyeltem a lényegre, csak hiányoztak a zárójelek... Persze, hogy így.
Amit itt felsoroltak, az nem a primitív tömbre vonatkozik, hanem az std::array container osztályra. A rend kedvéért:
Ez egy primitív tömb:
int numbers[5];
És ez egy array objektum:
std::array<int,5> numbers;
Mindkettő ugyanazt valósítja meg igazából: egy 5 elemű int tömböt. Csak az array osztálynak van számos metódusa, ami hatékonyabbá tudja tenni a használatát, le tudod kérdezni a méretét, üres-e, tudsz rajta iterálni, stb.
Ha primitív tömbbel dolgozol (nem javaslom), akkor a tömb hosszát magadnak kell számontartani, esetleg a sizeof() függvény segítségével meghatározhatod az elemszámát. A sizeof a tömb byte-okban vett méretét fogja visszaadni, amit ha leosztasz a tömb elemtípusának méretével, emgkapod az elemszámot (pl: sizeof(numbers) / sizeof(int) ). Vagy használhatsz std::array-t, esetleg std::vectort, ami sokkal kényelmesebb.
template <class T, std::size_t N>
constexpr std::size_t size(const T (&)[N]) noexcept
{
return N;
}
int numbers[10];
size(numbers); // == 10
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!