Prosím pomoc stl MAP – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Prosím pomoc stl MAP – C / C++ – Fórum – Programujte.comProsím pomoc stl MAP – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Tomfi0
Duch
8. 1. 2010   #1
-
0
-

Prosím pomoc s tímto úkolem.
-
Pomocí nástroje map vytvořte třídu, která bude reprezentovat pole celých čísel, které může mít kladné i záporné indexy.
Vytvotře konstruktor, který umožnňí pole inicializovat na libovolný interval (např -5,5) a nově vytvořené pozice vyplní nulami.
Dále vytvořte metody, které pole vypíše na standardní výstup a umožní uložit hodnotu do pole.
Pomocí přetíženého operátoru() vytvo5te metodu, která umožní vrátit hodnotu uloženou v matice na určité pozici(použití číslo=instance())
Pokud se užitvatel pokusí zapsat na neexistující pozici nebo z ní číst vyhodí se libovolná vámi zvolená standardní výjimka.
V hlavní funkci programu vytvořte vzorovou instanci pole, zapište do něj hodnotu a do jiné proměnné uložte hodnotu uložinou na určité pozici v poli.
-
Vůbec nevím, jak mám začít. Hlavně ten interval a posléze jednotkami z intervalu naplnit to asociativní pole. Děkuji moc, jak za pomoc, tak za případné naťuknutí.

Nahlásit jako SPAM
IP: 82.117.143.–
Reklama
Reklama
KIIV+42
God of flame
8. 1. 2010   #2
-
0
-

do tridy si ulozis rozsah.. ten pri pristupu k prvkum budes muset nejprve otestovat jestli neni mimo...
pak udelas asociativni pole .. klicem bude prekvapive int...
udelas for cyklem vynulovani.. od pocatecniho do posledniho indexu, ktery mas zadan
pristup k idexu bude vesmes jen zkontrolovani zdali je v rozsahu a kdyz ano tak se pouzije index jak to umi map
nic tezkyho

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Tomfi0
Duch
9. 1. 2010   #3
-
0
-



#include <iostream>
#include <iterator>
#include <map>
#include <exception>
#include <stdexcept>
using namespace std;
class Deska{
private:
map<int,int> deska;
int dolnimez;
int hornimez;
public: Deska(int dolnimez, int hornimez)
{this->dolnimez = dolnimez; this->hornimez = hornimez;
int p;
for(p = dolnimez; p <= hornimez; p++)
{
deska.insert(make_pair(p, 0));
}
}
int vypis()
{
map<int,int>::iterator i;
cout << "Tady vypisu prvky" << endl;
for(i = deska.begin(); i != deska.end(); i++)
{
cout << "(" << i->first << "," << i->second << ")\t";
}
cout << endl;
}

int vloz(int x,int y) throw (out_of_range)
{
if (x>= dolnimez and x<=hornimez)
cout << "Povoleno" << endl;
else throw out_of_range("Vlozeni mimo rozsah pole"); }

int operator()(int z) {
cout << "volan operator () s par. " << z << endl;
cout << "Vyhledavam prvky s klicem" << endl;
cout << "Deska s indexem : "<<z<<" = " <<"ma klic : " <<deska[z] << endl << endl;
}
};
int main()
{
Deska *Nova= new Deska(-4,4);
Nova->vypis();
try{ Nova->vloz(8,3); }
catch (out_of_range &o) { cerr << o.what() << endl; }
Nova->operator()(2);
system("pause");
}

Nahlásit jako SPAM
IP: 82.117.143.–
KIIV+42
God of flame
9. 1. 2010   #4
-
0
-

ten Rozsah bych resil jako predani dvou parametru.. urcite nedelej nacitani z klavesnice v te tride...
vypis muze zustat..

vynulovani delej primo v konstruktoru, ne mimo.. mas to i v zadani ze to mas vynulovat tam

vyjimka se haze pomoci Throw() .. nekde budou informace..

jeste ti chybi pretizenej operator pro pristup

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Tomfi0
Duch
10. 1. 2010   #5
-
0
-

Takto už je to snad správně, nějaké opravy uvítán, dost jsem s tím natrápil :-), ale nakonec se trošku vyplatilo

Nahlásit jako SPAM
IP: 82.117.143.–
KIIV+42
God of flame
10. 1. 2010   #6
-
0
-

snad jen nedavat do toho operatoru vypisy.. at to pekne vrati hodnotu pomoci return

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

Podobná vlákna

STL map, ci existuje prvok... — založil Tom@sQo

Prosím o pomoc!! — založil Michal

Prosím pomoc — založil Michal

Moderátoři diskuze

 

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