arrayfrage
-
hi, ich wollte fragen: Ist es möglich, ein Array nicht mit einer Zahl sondern mit einem Buchstaben zu initialisieren??
also statt
[] ={ 1, 2....}statt mit 1, 2 will ich es mit a, b initialisieren...
geht das?
-
ja das geht!
-
und wie würde die syntax aussehen?
-
kennt das etz mit "char" arrays
char Gruss[] = { 'H', 'e', 'l', 'l', 'o', ' ', 'W','o','r','l','d', '\0' };z.b. wenn mans ausgeben würde HELLO WORLD ;)!
-
sorry ich war falsch dran, ich meine ist es möglich den Index eines Arrays
mit a, b, c, .... anzusprechen anstatt
0, 1, 2??also nicht index 0 - 2
sondern index a - c
in der art...
-
bin mir da etz net sicher musst ausprobieren aber als erstes muss die 0 stehen
-
das ist mir klar nur wüsste ich gerne ob man statt index
0 - nwomöglich
a - n
nehmen könnte....
hoffe auf ne antwort die das beantworten kann
lol
-
Nein, das geht nicht direkt, du könntest dir höchstens (a) eine Umrechung von Zeichen in 0,1,2,... schreiben (z.B. "Wert=array[ch-'a'];"), (b) einen enum definieren, der den Namen a,b,c,... die entsprechenden Werte zuweist oder (c) eine map<char,irgendwas> verwenden.
(btw, du solltest unterscheiden zwischen dem Namen a (dahinter kann irgendetwas stehen - Variablen, Konstanten, Klassendefinitionen, Funktionen,...) und dem Wert 'a' (eine char-Konstante mit dem numerischen Wert 97))
-
Vorstellbar wäre auch, dass du dir eine entsprechende Klasse dafür bastelst.
#include <iostream> template <class T, size_t N> class foo { T bar_[N]; public: T& operator [](char index) { return bar_[index - 'a']; } }; int main() { foo<int, 100> a; a['b'] = 42; // zweites Arrayelement initialisieren std::cout << a['b'] << std::endl; return 0; }