DiJo Opublikowano 18 Czerwca 2006 Zgłoś Opublikowano 18 Czerwca 2006 (edytowane) cześć, sorki za takie pytanie... ale gdzie tu jest błąd? int **plansza; *plansza=new *int[punkty]; for (i=0; i < punkty; i++) { plansza[i]=new int[punkty]; }w g++ zawsze mi się takie coś kompilowało (albo mnie juz skleroza dopadła) bez zadnych błędów ani warning'ów a w devc++ nie chce (expected identifier before '*' token ). W google szukam, ale tam są tylko jednowymiarowe (a ja chciałbym dwu :P ) a ksiazke pozyczylem kumplowi :( plis jak ma ktoś pare sekund to prosze o pomoc :) pozdr. ps. błąd jest imo w drugiej linijce <_< ps2. dobra, niewazne :) jakoś sobie z tym poradziłem inaczej... sorki za zaśmiecanie =] Edytowane 18 Czerwca 2006 przez DiJo Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 18 Czerwca 2006 Zgłoś Opublikowano 18 Czerwca 2006 wskaźnik na tablice wskaźników.. brrrr.... nie lepiej użyć stl::vectora? :) #include <vector>using namespace std;...vector<vector[int]> > plansza;for(int i=0;i<punkty;i++){ vector[int] wiersz(szerokosc); plansza.push_back(wiersz);}// i dostęp...plansza[x][y]=4;o ile czegoś nie pomyliłem... mimo że wektory są wolniejsze niż tablice to przy dzisiejeszym sprzęcie ma to niewielki wpływ na szybkość.. jeśli tablica nie jest jakimś newralgicznym punktem programu. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
dinsdale Opublikowano 18 Czerwca 2006 Zgłoś Opublikowano 18 Czerwca 2006 int **plansza; plansza=new int*[punkty]; for (int i=0; i < punkty; i++) { plansza[i]=new int[punkty]; }W ten sposób działa :] Ja jak już mam deklarować takie coś to też wole vector albo po prostu deklaruje tablice jednowymiarową a odwołuje się przez plansza[x*y] Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
DiJo Opublikowano 19 Czerwca 2006 Zgłoś Opublikowano 19 Czerwca 2006 heh.. widze ze musze sie jeszcze duzo nauczyc :P dzieki za pomoc :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 19 Czerwca 2006 Zgłoś Opublikowano 19 Czerwca 2006 (edytowane) poczytaj trochę o STL (standard template library) i o vektorach... gwarantuję Ci że CI sie spodobają i tablic będziesz już rzadko używał :). Nie jest to trudne.. na początku może być troche nie zrozumiałe.... po prostu jest to klasa pewnego pojemnika na dane która deklarujesz tak: vector<typ> nazwa;jeśli chcesz mieć tablicę floatów np to piszesz: vector<float> tab1; // tablica floatówtab1.push_back(2.45); // dodanie do wektora liczby 2.45 - wektor sam sie rozszerza jak mu dodajesz nowe elementytab1.push_back(3.14); // dodanie do wektora liczby 3.14cout<< tab1[1]; // wypisanie na cout 2 elementu wektora czyli 3.14cout<< tab1.at(1); // jak wyzej tylko ze sprawdzaniem czy index jest poprawnycout<< tab1.size(); // aktualny rozmiar tablicy tutaj da 2 -nigdy wiecej nie musisz trzymać max indexu tablicy dynamicznej :)for(unsigned int i=0;i<tab1.size();i++) // wypisanie wszystkich lementów vektora po kolei cout<< tab1[i];for(vector<int>::iterator it=tab1.begin();it!=tab1.end();it++) // jak wyzej tylko z uzyciem iteratora (rodzaj wskaźnika na kolejny element w wektorze) cout<< *it;tab1.clear(); // wyczyszczenie wektora - usuniecie wsyzstkich przetrzymywanych wartoscito takie najprostsze i najczesciej stosowane metody klasy vector. oczywiscie nic nie stoi na przeszkodzie żeby zrobić definicję zawierającą zbiór obiektów jakeijs klasy: vector<cMojaKlasa> mojeObiekty;albo wektor o dowolnym wymiarze: vector<vector<vector[int]> > > wektor3Dint; tylko przy wielowymiarowych konstrukcjach trochę skomplikowane może wydać się wstawianie czego do wektora... dlatego warto poćwiczyć wektory na zwykłych 1 wymiarowych Edytowane 19 Czerwca 2006 przez PelzaK Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
DiJo Opublikowano 19 Czerwca 2006 Zgłoś Opublikowano 19 Czerwca 2006 niom... nawet to proste i przyjemne :lol: i pomyslec ze tyle sie meczylem zeby nie wyjsc poza tablice <_< grrrr dzieki jeszcze raz :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MeHow Opublikowano 24 Czerwca 2006 Zgłoś Opublikowano 24 Czerwca 2006 dodam tylko do wypowiedzi PelzaKa, ze stl jest templatesowy, a wiec dlatego mozesz pakowac do tych struktur obiekty dowolnego typu. Dla mnie vectorek i map to genialne wynalazki :] Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
tukamon Opublikowano 24 Czerwca 2006 Zgłoś Opublikowano 24 Czerwca 2006 potwierdzam, stl jest maxymalnie genialny. nie polecam go jednak w przypadkach gdy jest ostry limit czasowy Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 27 Czerwca 2006 Zgłoś Opublikowano 27 Czerwca 2006 przesadzasz... robiłem prace mgr w której baaaaardzo ostro wykorzystywałem vectory i w ciągu sekundy było średnio na oko kilkanaście tysiecy operacji na vektorach... W zwykłych programach nie ma obaw przed tym co straszą.. że vektory są powolne... Nie opłaca się ich robić tylko w silnikach 3D :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
tukamon Opublikowano 27 Czerwca 2006 Zgłoś Opublikowano 27 Czerwca 2006 wierze. po prostu mamy zadania gdzie jest limit czasu procesora i kazdy ułamek się liczy, trzeba wykorzystywać wszystko co się da żeby przespieszyć [za cin zamiast scanf albo innych stdinów pali się ludzi na stosie. dosłownie] Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 29 Czerwca 2006 Zgłoś Opublikowano 29 Czerwca 2006 no chyba że tak... :) to współczuję :) W normalnych programach to nie jest wymagane... najwyżej po zrobieniu programu pisze się wymagania sprzętowe, w których umieszcza sie odpowiednio szybki procesor :) i po sprawie.... Podobnie jak w Polsce łata się dziury w ulicach, najtańszym kosztem... stawia się znak drogowy informujący kierowców: uszkodzona nawierzchnia :D Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
tukamon Opublikowano 29 Czerwca 2006 Zgłoś Opublikowano 29 Czerwca 2006 hehehe u nas jest tylko "Warning: large Input/Output data, be careful with certain languages. The time limit is strict for this problem." Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
DiJo Opublikowano 1 Lipca 2006 Zgłoś Opublikowano 1 Lipca 2006 ... Podobnie jak w Polsce łata się dziury w ulicach, najtańszym kosztem... stawia się znak drogowy informujący kierowców: uszkodzona nawierzchnia :D i pod spodem tabliczka: na odcinku 30km :D Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...