Dynamiczna tablica bool 4-wymiariowa - jak utworzyć ?

0

Czy można jakoś bardziej efektywnie utworzyć 4- wymiarową tablicę bool niż tak :

bool **** komb;
komb= new bool ***[10];
for(int i=0; i<10;i++){
komb[i]= new bool **[10];
}
for(int i=0; i<10;i++){
for(int a=0; a<10;a++){
komb[i][a]=new bool*[10];
}
}
for(int i=0; i<10;i++){
for(int a=0; a<10;a++){
for(int b=0; b<10;b++){
komb[i][a][b]=new bool[10];
}
}
}
for(int i=0; i<10;i++){
for(int a=0; a<10;a++){
for(int b=0; b<10;b++){
for(int c=0; c<10;c++){
komb[i][a][b][c]=false;
}
}
}
}

Dopiero zacząłem przygode z c++ wiec wybaczcie :)

// ale formatuj.. rób wcięcia.. c jest wredne, a jak bedziesz robił, to sam się wtedy nie pogubisz przy wiekszym projekcie [mf]

0

Zastanów sie czy na pewno niezbędna jest taka struktura danych. Obawiam się ze szybko pogubisz się w indeksach. Czterowymiarową tablice to nawet ciężko sobie wyobrazić (przynajmniej mnie).
Czy nie łatwiej było by zarządzać tablicą jednowymiarową tab[nnn*n] - stosujesz jedynie odpowiednie indeksowanie i efekt taki sam.

0

zgadzając się z marko13 zapytam - do czego potrzebujesz takiej szalonej struktury - pytasz z ciekawości, czy jest to część jakiegoś realnego problemu ?

Wyobrazić sobie to można jako sześcian rekordów zmieniający się w czasie (czas jest tym czwartym wymiarem)

Proponuję trochę uprościć:

bool**** komb;
komb=new bool***[10];
for(int i=0;i<10;i++) {
  komb[i]=new bool **[10];
  for(int a=0;a<10;a++) {
    komb[i][a]=new bool*[10];
    for(int b=0;b<10;b++){
      komb[i][a][b]=new bool[10];
      for(int c=0;c<10;c++){
        komb[i][a][b][c]=false;
      }
    }
  }
} 

nie zmienia to klasy złożoności (w tym wypadku 101010*10 przypisań) ale jeśli chcesz zainicjalizować każdy element, to szybciej się nie da.

0

marko13- algorytm mam już napisany ( w Javie ) i wystarczy tylko przepisać wiec z indeksowaniem nie bedzie problemu

Kapustka- potrzebne mi jest to aby mieć wartość bool dla każdej liczby z przedziału [0000,9999] - zależy mi też na "cyfrowym" dostepie do tych wartości - chyba że napiszecie mi jak z 4 cyfrowej liczby pobrać pojedyncze cyfry :).

0

Nie no, to odpada co napisałem - musiałbym za każdym razem sprawdzać ( prawda ? ) czy liczba w offsecie jest jedno, dwu, trzy czy cztero cyfrowa ( bo 0 traktuje jak każdą inną cyfrę ) a wtedy złożoność algorytmu szlak trafi :/

0

Wide tutaj pytanie do zadania z oi t "Bankomat", racze zeby ten topicsie zbytnio nie rozwijal, bo kady musi sam napisac zadanie;]Chyba ze sie myle z przeznaczeniem tego kodu i problemu to bardzo przepraszam;]

0

Wide tutaj pytanie do zadania z oi t "Bankomat", racze zeby ten topicsie zbytnio nie rozwijal, bo kady musi sam napisac zadanie;]Chyba ze sie myle z przeznaczeniem tego kodu i problemu to bardzo przepraszam;]
Też mi to OI śmierdzi zresztą jak pare innych tematów (w tym jeden mój ;P) w każdym razie z zadaniem "Bankomat" poradziłem sobie w inny sposób bez takich "wymyślnych" tablic.

0

Pewnie, zwykla macierz w szczegolnosci wystarczy;]Jak dobrze wczyta sie dane;)

0

Matys- wiesz... ja sie pytam o same konstrukcje w języku - w Javie wystarczy jedna linijka żeby to zrobić :/

Faktycznie, chodzi mi o bankomat :) A z zadaniem sobie już poradziłem...

1 użytkowników online, w tym zalogowanych: 0, gości: 1