Jak skonstruowac tablice bajtow w C++ aby po podaniu 3 liczb uzyskac jakas zmienna np. tablica [x][y][z] zwroci s
?
Jak skonstruowac tablice bajtow w C++ aby po podaniu 3 liczb uzyskac jakas zmienna np. tablica [x][y][z] zwroci s
?
Nie bardzo wiadomo o co Ci chodzi. Może o coś takigo:
unsigned char tab[10][10][10];
?
chodzi o to ze mam jakby 3 "klucze"
mam tablica[5] = {
{1,7,4},
{5,9,3},
{1,4,2},
{8,3,1},
{0,2,41}
};
aby znalezc indeks 8,3,1 musze zrobic
index = foo(8,3,1);
int foo(BYTE a,b,c)
{
int index = 0;
for(BYTE x=0;x<5;x++)
{
if(tablica[0] == a)
if(tablica[1] == b)
if(tablica[2] == c)
return index;
index++;
}
}
czyli iterowac za każdym razem tablice, chcialbym odwolac sie do tablicy np tablica[8][3][1] i dostac index
wiec ideksy tez musialyby byc w niej, chyba sie tego nie da zrobic inaczej jak zywajac kontenera map ale mi chodzi o wydajnosc
A w czym problem stanowi stworzenie trójwymiarowej tablicy? Kompletnie Cię nie rozumiem. Jaki indeks chcesz uzyskać? Napisz jaśniej jak ta organizacja danych ma wyglądać.
Olek777,weź jakąś książkę/pogógluj za tym,jak w C/C++ działają tablice X-wymiarowe,bo najwyraźniej nie wiesz.
tablica[8][3][1] toć przecież jest jakiś indeks.
Ja chyba wiem, o co chodzi.
Chcesz mieć tablicę przechowującą trójki liczb ? W takim razie zadeklaruj sobie strukturę, która będzie te trzy liczby przechowywać i wsadzaj takie struktury do tablicy jednowymiarowej. Następnie, tak jak napisałeś, jedziesz po kolejnych indeksach tej tablicy i sprawdzasz, czy wartości w i-tej komórce tablicy (w strukturze tam siedzącej) są takie, jakich szukasz. Jeśli tak, to zwracasz nr indeksu, jeśli nie, to szukasz dalej.
Dodatkowo, żeby móc odwoływać się odpowiednio do tej tablicy przeładuj sobie operator []
no wlasnie nie chce jezdzic po niej bo ona bedzie duza
jak przeladowac?
Napisz co dokładnie chcesz osiągnąć, bo wydaje mi się, że można to zrobić po prostu prościej.
A co do pytania to poczytaj o przeładowaniu operatorów.
struct X
{
int a , b , c
X() {
a=b=c=0;
}
X( int x , int y , int z) {
a= x;
b=y;
c=y
}
bool operator == ( X &inna ){
if ( inna.a==a && inna.b==b &&inna.c==c)
return true;
}
X tablica[10];
for( int i = 10 ; i < 10; i++(
if( tablica[i]==X(1,2,3))
cout<<i;
@Olek777
Przepraszam, że się wtrącę ale ten wątek jest pozbawiony sensu. Olek, tu jest ciekawy materiał (nie sugeruj się jego tytułem), spokojnie się z nim zapoznaj:
http://xion.org.pl/productions/texts/coding/megatutorial/
Uczylem sie z tego tuta i szczerze polecam.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.