Hur kan man göra det? Man kan inte ha dynamiska variabelnamn, kompilatorn har ingen aning om vad användaren kommer att mata in och då blir det lite svårt för den att associera namnet med en adress i minnet. Ett förslag är att du kollar på hash-tabeller, Map i STL. Kort förtydling: map är i allmänhet inte en hashmap, utan ett binärt sökträd. Standarden kräver åtkomst på som O(log N), och jag har för mig att den också kräver det för insertion och deletion, och då är det inte mycket annat val. Jag antar att du vill räkna bokstäver i ord/meningar. Det är möjligt att ha dynamiska namn på variabler. Sök på ## på msdn så får du lite tips där. ...men man ska naturligtvis undvika att använda system/kompilator-specifika grejer om det går. Det är dessutom bara så att du kan generera "dynamiska namn på variabler" eller snarare : vilken kod helst vid compile-time med ## eftersom ## är en preprocessor operator (som t.ex. kan användas i macron för att generera kod). Ge variabel namn efter en annan variabels värde?
Jag försöker göra en loop som gör en ny variabel och ger den värdet från varje tecken i en string-variabel.
Nåt såhär:
string ord;
cout << "Skriv in ditt ord:";
cin >> ord;
//cout << ord.length() << endl;
int a;
string alfab = "abcdefghijklmnopqrstuvwxyz";
for (a=0;a<ord.length();a++)
{
char "alfab[a]" = ord[a];
//cout << ord[a];
}
Lösning? :)
Sv: Ge variabel namn efter en annan variabels värde?
/PeterSv:Ge variabel namn efter en annan variabels värde?
För att använda map kan man t.ex. skriva så här:
#include <map>
...
std::map<std::string, int> m;
m["APA"] = 4;
m["BEPA"] = 5;
...Sv: Ge variabel namn efter en annan variabels värde?
Då kan du ju använda en array som är 256 elemnt stor. Låta varje element motsvara ett tecken.Sv: Ge variabel namn efter en annan variabels värde?
Scanmaster_KSv:Ge variabel namn efter en annan variabels värde?
Slutsats; använd map i det generella fallet.Sv:Ge variabel namn efter en annan variabels värde?
Dvs du kan inte skapa nya variabler i runtime som har namn som beror på värden i runtime.
map är förmodligen lösningen på dina problem.
/Andreas