Permalänk
Medlem

beräkna längder av int[] i C++

Jag har ett litet program som jag tänkt ska kunna göra beräkningar efter visst mönster. Det är så att man läser så många tal(int:ar) som användaren matar in i kommandotolken. Alla dessa tal sparas ner i ett fält av int, dvs int[].

Saken är den att jag vet inte hur jag gör för att beräkna exakt hur många int det finns i int fältet (int[]). Hur gör man detta utan att räkna antalet heltal man stoppar in i fältet?

Här är ett litet exempel av vad jag menar. Nu antar jag att fältet har förbestämda heltal i sig.

int n[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};

och lite längre ner i programmet vill jag ha längden av fältet.

int langd = "längden av n[], antal heltal som finns i n[]"
cout << "n har langden: " << langd << endl;

All hjälp välkomnas.

Permalänk
Medlem

// Funkar inte för dynamiska arrayer. Beräknas vid compile-time. size_t length = sizeof(n) / sizeof(int);

Visa signatur

Intel Core i7-3770K | NVIDIA Geforce GTX 980 | 16 GB DDR3 | DELL P2415Q | DELL U2711 | DELL U2410

Permalänk
Medlem

Finns det inte någon funktion, typ length(), för arrayer i C++? I Java finns det iaf, (n.length) skulle i ditt fall ge 9.

Visa signatur

must!

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Hocce
Finns det inte någon funktion, typ length(), för arrayer i C++? I Java finns det iaf, (n.length) skulle i ditt fall ge 9.

Nej, finns inte.
Arrayer i Java är mer som std::vector än en riktig C/C++ array.

Visa signatur

Intel Core i7-3770K | NVIDIA Geforce GTX 980 | 16 GB DDR3 | DELL P2415Q | DELL U2711 | DELL U2410

Permalänk

använd std::vector istället. Det är "c++"-mässigt. I annat fall måste du använda dig av realloc för att utöka storleken på en int[]