Array mit unregelmäßigen Index und next()
-
1.) Ich möchte ein Array erstellen, das wie folgt aussieht
MeinArray[0] = "test"; MeinArray[0] = "testo"; MeinArray[20] = "testoo"; MeinArray[188] = "testooo"; MeinArray[1900] = "testoooo"; MeinArray[67777] = "testooooo";
2.) Gibt es eine Funktion à la next() um in einem Array von einem direkt zum nächsten index zu wechseln, oder eine Funktion, die eine Callback-Funktion auf jedes Array-Element anwendet?
-
es soll natürlich nicht 2 mal MeinArray[0] heißen... tüppfehler
-
Wo ist bei 1.) die Frage?
-
Achja, die Frage
Die soll lauten.... Kann ich so ohne weiteres ein Array erstellen, wo die Index 11,12,13,14 NICHT EXISTIEREN aber index 15 schon?
-
nennt sich std::map und man kann da einen iterator verwenden
-
So ne Funktion kannst du dir schnell selber schreiben. Du übergibst ihr z.B. das Array mit den char* und einen Startindex. Die Funktion iteriert jetzt so lange über das Array, bis sie einen Wert findet und gibt dann den Index des Wertes zurück. An einer Stelle, wo du keinen Wert haben willst, setzt du einfach NULL
-
bertold schrieb:
Achja, die Frage
Die soll lauten.... Kann ich so ohne weiteres ein Array erstellen, wo die Index 11,12,13,14 NICHT EXISTIEREN aber index 15 schon?
Nein.
-
bertold schrieb:
1.) Ich möchte ein Array erstellen, das wie folgt aussieht
MeinArray[0] = "test"; MeinArray[0] = "testo"; MeinArray[20] = "testoo"; MeinArray[188] = "testooo"; MeinArray[1900] = "testoooo"; MeinArray[67777] = "testooooo";
2.) Gibt es eine Funktion à la next() um in einem Array von einem direkt zum nächsten index zu wechseln, oder eine Funktion, die eine Callback-Funktion auf jedes Array-Element anwendet?
wie Shade Of Mine schon gesagt hat, nennt sich dies std::map
example
#include <map> #include <string> #include <iostream> #include <algorithm> //callback function void MyCallBack(const std::pair<int, std::string> &p) { std::cout << "key : " << p.first; std::cout << " value : " << p.second << "\n"; } int main() { //declaration typedef std::map<int, std::string> TMeinArray; TMeinArray MeinArray; //initialization MeinArray[0] = "testo"; MeinArray[20] = "testoo"; MeinArray[188] = "testooo"; MeinArray[1900] = "testoooo"; MeinArray[67777] = "testooooo"; //next std::cout << "next()\n"; typedef TMeinArray::const_iterator citer; for(citer i = MeinArray.begin(), end = MeinArray.end(); i != end; ++i) { std::cout << "key : " << i->first; std::cout << " value : " << i ->second << "\n"; } std::cout << std::endl; //callback std::cout << "\ncallback\n"; std::for_each(MeinArray.begin(), MeinArray.end(), MyCallBack); }