Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Tablica dwuwymiarowa

Ostatnio zmodyfikowano 2015-08-21 23:53
Autor Wiadomość
Anim
Temat założony przez niniejszego użytkownika
Tablica dwuwymiarowa
» 2015-08-21 22:19:28
Ponownie dzisiaj ja :)

Mam takie pytanie, potrzebuję czegoś w rodzaju dwuwymiarowej tablicy. Jednak tablica dwuwymiarowa nie spełnia swojego zadania, ponieważ ja potrzebuję tablicy 10k x 10k... z czego mogę skorzystać ? myślałem o kontenerze lub liście, ale nie do końca wiem jakbym mógł tam wrzucić "dwa wymiary". Pomoże ktoś ? jakiś pomysł?
P-136669
notabigthreat
» 2015-08-21 22:24:42
Brałeś pod uwagę std::vector<std::vector</*typ*/>> ?
http://cpp0x.pl/kursy​/Kurs-STL-C++​/Kontener-tablicy-std-vector​/119
P-136670
Vister26
» 2015-08-21 22:26:07
Przecież ta ogromna tablica zajmie ci 100+ MB! Pomijając to, dlaczego uważasz że dwuwymiarowa statyczna tablica się nie nada?
P-136671
Cansisti
» 2015-08-21 22:51:09
Nawet jeśli to będzie tablica jedno bajtowych wartości to zajmie ci 100 MB - wątpię żebyś miał komputer z takim RAMem :)
Dobrym rozwiązaniem w takim wypadku (i chyba jedynym) jest użycie plików tymczasowych. I dodatkowo to bardzo szybkie rozwiązanie.
(Ostatnio pisałem program który generował 128 MB plik, zrobił to w kilka sekund - dla porównania: była to pętla z 256^3 (ponad 16 milionów) powtórzeń - gdyby w takiej pętli umieścić wyświetlenie czegoś w konsoli zajęłoby to kilka(może naście) minut :) )

A jeśli już chodzi o dwa wymiary w dwuwymiarowej tablicy to wyobraź to sobie jak układ dwuwymiarowy współrzędnych
C/C++
table[ x ][ y ] //x oś pozioma, y oś pionowa
P-136675
Anim
Temat założony przez niniejszego użytkownika
» 2015-08-21 22:57:08
hm. Dziękuję za sugestie...Tablica statyczna jest w porządku, ale chodzi faktycznie o ten rozmiar danych :) Spróbuję w takim razie pliki tymczasowe. Mam nadzieję, że mi się uda :D
P-136676
notabigthreat
» 2015-08-21 23:17:01
@2UP:
C/C++
std::vector < std::vector < int >> bardzo_duzy_pojemnik( 10000, std::vector < int >( 10000 ) );
std::cout << bardzo_duzy_pojemnik.size() << "\n" << bardzo_duzy_pojemnik[ 4824 ].size();
U mnie się mieści.
P-136677
Cansisti
» 2015-08-21 23:53:15
Sorry, namieszałem, pomyliłem gigabajty z megabajtami :) niemniej jednak tempy są fajne, chociaż tutaj tablica powinna wystarczyć (lub vector)
P-136678
« 1 »
  Strona 1 z 1