Přesouvání z pole do pole – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Přesouvání z pole do pole – C / C++ – Fórum – Programujte.comPřesouvání z pole do pole – C / C++ – Fórum – Programujte.com

 

Tomáš
~ Anonymní uživatel
560 příspěvků
27. 11. 2014   #1
-
0
-

Dobrý den,

potřeboval bych poradit, jak udělat to, když mám pole, ve kterém jsou objekty a já je potřebuji přesunout do jiného pole a to tak aby v tom poli byl maximálně jeden objekt stejného typu. 

Abych to shrnul, tak mám skupiny objektů a každá skupina má nějaké své označení, tyto objekt se dávají do pole, kde je jedno, kolik jich tam bude ze stejné skupiny. A pak potřebuji vytvořit pole, kam se budou předávat ty předměty s toho prvního pole, ale v tom to poli bude moci být pouze jeden předmět od každé skupiny. 

Napadlo mě to řešit přes  enum, ale nevím, jak toho docílit, aby to fungovalo, tak jak má. Proto prosím o radu, jak tento problém vyřešit. 

Jsem začátečník, tak mě omluvte pokud se ptám na nějakou hloupost.

Děkuji.

Nahlásit jako SPAM
IP: 91.219.240.–
27. 11. 2014   #2
-
0
-

Podívej se na definici pole. Zjistíš, že pole tvoří objekty stejného typu. Pokud by v poli měl být jen jeden objekt stejného typu, pole bude mít velikost 1.

Domnívám se, že budeš muset přeformulovat popis problému nebo dokonce zadání.

hu

Nahlásit jako SPAM
IP: 2001:67c:1222:800:941e:ff...–
JoDiK
~ Anonymní uživatel
987 příspěvků
27. 11. 2014   #3
-
0
-

#1 Tomáš
Nevím, co přesně dělá enum (jestli jsem to pochopil správně, tak jde o výčtový typ - seznam předem definovaných hodnot).

Každopádně tvůj problém lze řešit i jednoduše - při kopírování z pole kde může být víc objektů stejné skupiny do pole kde může být pouze jeden z dané skupiny budeš brát objekty ze zdrojového pole jeden za druhým a každého objektu nejdříve projdeš celé cílové pole, jestli tam už objekt stejné skupiny je obsažen, pokud není můžeš přidat, pokud je tak jdeš na další objekt...

Sice to znamená, že pro každý objekt budeš znovu a znovu procházet celé cílové pole, ale počítače jsou rychlé ne? Kdyby to dělalo potíže, dá se to optimalizovat - třeba setříděním objektů v cílovém poli a z toho plynoucím zrychlením hledání, jestli tam už je nebo ne...

Nahlásit jako SPAM
IP: 88.103.236.–
Tomáš
~ Anonymní uživatel
560 příspěvků
27. 11. 2014   #4
-
0
-

#3 JoDiK
Myslíš to tak že, bych měl nějakou metodu, kde by byl cyklus který by projížděl to cílové pole a v tom cyklu by byla nějaká podmínka, která by se ptala, zda tam už neni objekt toho typu a pokud ne tak by se přidal a když ano tak by to pokračovalo dál? 

Nahlásit jako SPAM
IP: 91.219.240.–
JoDiK
~ Anonymní uživatel
987 příspěvků
28. 11. 2014   #5
-
0
-

#4 Tomáš
No skoro...

"v tom cyklu by byla nějaká podmínka, která by se ptala, zda ten konkrétní zkoumaný objekt je toho typu a pokud ano, cyklus by skončil a nic by se nepřidalo. Až proběhne celý cyklus aniž by se našel objekt onoho typu, tak by se teprve přidal!"

Nahlásit jako SPAM
IP: 88.103.236.–
KIIV
~ Moderátor
+43
God of flame
28. 11. 2014   #6
-
0
-

#5 JoDiK
coz vesmes resi std::map kdyz das typ objektu jako klic

nebo pokud by to mel serazeny, tak to jde nacpat do vectoru a pouzit binarni vyhledavani.. a tak dale

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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, 86 hostů

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ý