Elemente in einem Array

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Elemente in einem Array

    Hi,

    wollte mal fragen ob mir jemand sagen kann wie ich rausfinde, wieviele elemente in einem array sind.

    z.B. in php gibt es die funktion in_array(); gibt es sowas auch in c/c++?

    MfG Basti

  • #2
    http://www.google.com/search?q=c%2B%...ay+z%C3%A4hlen

    ERST SUCHEN!

    Zweites Ergebnis liefert die Lösung. Brauchst die Seite nichtmal besuchen.

    Kommentar


    • #3
      #include <iostream.h>

      using namespace std;

      int main()
      {
      int i, array[10]={123,321,231,132};

      i = sizeof(array) / sizeof(array[0]);

      cout<<i;

      system("pause");
      }


      = 10

      aber in dem array sind nur 4 datensätze, sonst hätte cih das schon genommen

      Kommentar


      • #4
        Jetzt nimmer so schlau?
        Ich würde erst lesen was andere wollen und net was man gerade bei google so findet, weil in_array(); gibt aus, wieviele inhalte ein Array halt
        Zuletzt geändert von basti87; 07.10.2005, 18:45.

        Kommentar


        • #5
          jetzt bleib mal auf dem boden.

          [...] weil in_array(); gibt aus, wieviele inhalte ein Array halt
          nein, tut es nicht. aber wie es aussieht, brauchst du eh etwas anderes.

          sizeof() ist schon das richtige - du legst ein array von 10 elementen an und die funktion gibt dir die zahl 10 zurück. was du vermutlich brauchst ist eine schleife, die das array durchläuft und überprüft, ob ein element eine zahl über null ist. wenn ja, wird der zähler inkrementiert.

          Kommentar


          • #6
            Code:
            template <typename T, size_t N>
            char ( &_ArraySizeHelper( T (&array)[N] ))[N];
            #define countof( array ) (sizeof( _ArraySizeHelper( array ) ))
            Sieht schlimm aus, aber kann dir egal sein. Damit kannst du jedenfalls sowas machen:
            Code:
            int a[5];
            int b[10*countof(a)];   // b hat 50 Elemente
            cout<<countof(b);
            Die erste Benutzung von countof() ist auch nur so zu erreichen, denn wenn du dir eine Funktion zur Ermittlung der Anzahl der Elemente schreibst, ist ihr Rückgabewert zur Compilezeit nicht klar und deswegen würde die Zeile mit dem Kommentar einen Compile-Fehler werfen.

            (Alle Angaben ohne Gewähr, habe ewig nicht mehr C++ geschrieben.)

            Kommentar


            • #7
              @ onemorenerd

              Was bringt mir deine funktion jetzt? die ausgabe ist "50" aber die array´s haben noch keinen einzigen inhalt, du musst wohl was falsch verstanden haben. Les mal bitte nochmal von oben, ich will einfach nur die inhalte in einem array ausgegeben haben, also als zahl, nicht wieviele man max. in einen speichern kann.

              Kommentar


              • #8
                Les mal bitte nochmal von oben, ich will einfach nur die inhalte in einem array ausgegeben haben, also als zahl, nicht wieviele man max. in einen speichern kann.
                Was denn nun, die Inhalte oder die Anzahl der Elemente? Letzteres nehme ich an. Das mit in_array() hast du sicher nur verwechselt.

                Tja, du magst das anders sehen, aber das Array hat nun mal 50 Elemente.

                Wenn man "int a[50];" schreibt, werden beim Start 50 Elemente des Typs Integer alloziert. Da steht zunächst erstmal Datenmüll drin (vom letzten Prozess, der dieses Speichersegment hatte), aber auch den kann man als Integer interpretieren.

                Das was du gern hättest, geht nur mit einer versteckten Sekundärstruktur, die erfaßt, welchen Elementen Werte zugewiesen wurden.
                Aber C++ ist nicht PHP oder Java. Kein Interpreter, keine Runtime Engine, keine Sekundärstruktur(en).

                Deshalb gibt es per se auch keine dynamischen Arrays in C++. Klassen, die deren Verhalten implementieren, gibt es wohl. Die kopieren allerdings das alte Array komplett in ein neues, größeres, wenn du ein weiteres Element einfügst.

                Lange Rede ... entweder du sorgst selbst für die nötige Sekundärstruktur, in dem du die Anzahl belegter Elemente in einer Variablen mitführst ... oder du nimmst einfach einen Vektor.
                Zuletzt geändert von onemorenerd; 10.10.2005, 00:05.

                Kommentar

                Lädt...
                X