Počet prvků ve string poli – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Počet prvků ve string poli – C / C++ – Fórum – Programujte.comPočet prvků ve string poli – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
ITDoom0
Duch
3. 11. 2015   #1
-
0
-

Dobrý den, jsem začátečník a potřeboval bych poradit s funkcí, která mi vypíše počet prvků ve string poli.

string barvy[] = { "dark_blue", "dark_green", "dark_cyan", "dark_red", "dark_magenta", "dark_yellow", "grey", "dark_grey", "blue", "green", "cyan", "red", "magenta", "yellow", "white" };

tj. potřeboval bych, aby mi ta funkce vrátila číslo 15. Zkoušel jsem už funkce size() a sizeof(), ale žádná z nich mi nefungovala. Prosím o radu.

Děkuji.

Nahlásit jako SPAM
IP: 188.75.144.–
Řešení
BDS+3
Věrný člen
3. 11. 2015   #2
-
0
-
Vyřešeno Nejlepší odpověď

#1 ITDoom
to v čistém c/c++ na klasické pole nefunguje.

Pokud pole vytváříš, tak přece jeho velikost znáš..

Ale pokud chceš dynamicky měnit jeho velikost, tak doporučuji třeba vector

přiklad:

std::vector<string> lst;

pocet_prvku = lst.size();

Nahlásit jako SPAM
IP: 185.69.69.–
W11 :)
ITDoom0
Duch
3. 11. 2015   #3
-
0
-

#2 BDS
Děkuji, mám to.

Nahlásit jako SPAM
IP: 188.75.144.–
PiranhaGreg0
Stálý člen
3. 11. 2015   #4
-
0
-

#3 ITDoom

Ne že bych tě odrazoval od toho vectoru, ale sizeof funguje. Jen se to musí podělit velikostí elementů v tom poli. V tomto případě stringů... 

#include <iostream>
#include <string>

using namespace std;

string barvy[] = { 
	"dark_blue", "dark_green", "dark_cyan", "dark_red", 
	"dark_magenta", "dark_yellow", "grey", "dark_grey", 
	"blue", "green", "cyan", "red", "magenta", "yellow", "white" 
};

int main() {
	cout << sizeof(barvy) / sizeof(string) << endl;

	return 0;
}

Tento postup ale samozřejmě nejde aplikovat na dynamicky inicializovaná pole a pokud předáš pole jako parametr nějaké funkci, tak pokud u něho není hint, jak je velký, tak to taky nefunguje správně...

Nahlásit jako SPAM
IP: 147.32.126.–
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, 69 hostů

Podobná vlákna

Počet prvků v poli — založil Hmm

Počet prvků poli — založil suchla12

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ý