Název budoucí proměnné v parametru funkce – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Název budoucí proměnné v parametru funkce – C / C++ – Fórum – Programujte.comNázev budoucí proměnné v parametru funkce – C / C++ – Fórum – Programujte.com

 

richard.zavodny0
Návštěvník
26. 3. 2017   #1
-
0
-

Dobrý den, tentokrát mám další problém.

Mám funkci, která vrátí hodnotu proměnné. Problém je, že tu funkci potřebuji použít vícekrát, ale chci aby vracela pokaždé jiný název proměnné. Funkce je typu string, a v parametru této funkce jsem vytvořil parametr typu string, který obsahuje název budoucí proměnné.

 Takže, tady mám definici proměnné:

string funkce(string nazevBudouciPromenne) {
    string (zde chci použít název proměnné definovaný v nazevBudouciPromenne, takže např. "novaPromenna");

    novaPromenna = "Obsah promenne";  
}

a tady tímto způsobem ji použiju: 

funkce("novaPromenna");


Neví někdo řešení mého problému?

Díky moc. :)

Nahlásit jako SPAM
IP: 109.81.208.–
Programátor, Kóder, Grafický designér, Kritik, zastánce Open-Source a Linuxu.
KIIV
~ Moderátor
+43
God of flame
26. 3. 2017   #2
-
0
-

Resenim by mohlo byt asociativni pole. Napriklad std::map.

Nahlásit jako SPAM
IP: 94.113.99.–
Program vždy dělá to co naprogramujete, ne to co chcete...
richard.zavodny0
Návštěvník
26. 3. 2017   #3
-
0
-

#2 KIIV
Kód by nebyl? Z dokumentace nejsem zrovna "moudrej". :(

Nahlásit jako SPAM
IP: 109.81.208.–
Programátor, Kóder, Grafický designér, Kritik, zastánce Open-Source a Linuxu.
KIIV
~ Moderátor
+43
God of flame
27. 3. 2017   #4
-
0
-

Tak tobe se budou hodit hlavne tyto zaklady:

// vytvoření proměnné s kličem typu string a hodnotou typu string:
std::map<std::string,std::string>  mapa;

// operátor přístupu k hodnotě podle klíče:
mapa["klic"] = "hodnota"; // pokud klíč neexistuje, tak ho vytvoří, pokud existuje, tak přepíše

// to ale udělá, ikdyž do klíče nic nezapisuješ. Například:
if (mapa["klic_x"] == "neco") {
  // ...
}
// takže, ikdyž klíč neexistuje, tak se vytvoří s prazdným stringem (někdy se to i docela hodí)

// pokud potřebuješ zjistit, jestli tam klíč je a v tom případě pracovat s jeho hodnotou:
auto iter = mapa.find("klic"); // find vrací iterátor na položku mapy pokud existuje
if (iter != mapa.end()) {      // pokud ale neexistuje, tak vratí mapa.end() (a nic nevytváří!)
  // iterátor se chová jako ukazatel a odkazuje na pár: konstantní klíč a hodnota (std::pair<const std::string, std::string>)
  const std::string & klic = iter->first; // lze použít i přímo, ale na ukázku je to lepší takto
  std::string &    hodnota = iter->second; // nebo také: (*iter).second

  hodnota = hodnota+"_pridavek";
}

// a na závěr je ještě možnost vkládat prvky jen pokud neexistují:
auto res = mapa.insert(std::pair<std::string, std::string>("klic","hodnota"));
// kde res.first je typu boolean a vrátí true, pokud se klíč přidal
// a   res.second je iterátor na ten prvek
Nahlásit jako SPAM
IP: 212.47.3.–
Program vždy dělá to co naprogramujete, ne to co chcete...
richard.zavodny0
Návštěvník
30. 3. 2017   #5
-
0
-

#4 KIIV
Díky za odpověd. Nakonec jsem sice použil jiné řešení, protože mi tak nějak došlo, že vytvářet proměnnou v průběhu je blbost.

Každopádně díky moc! :)

Nahlásit jako SPAM
IP: 109.81.208.–
Programátor, Kóder, Grafický designér, Kritik, zastánce Open-Source a Linuxu.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

Podobná vlákna

C# název proměnné — založil Andy

Dynamický název proměnné — založil JinDave

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý