Jak skonstruowac tablice

0

Jak skonstruowac tablice bajtow w C++ aby po podaniu 3 liczb uzyskac jakas zmienna np. tablica [x][y][z] zwroci s

?

0

Nie bardzo wiadomo o co Ci chodzi. Może o coś takigo:

unsigned char tab[10][10][10];

?

0

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

0

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ć.

0

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.

0

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.

0

Dodatkowo, żeby móc odwoływać się odpowiednio do tej tablicy przeładuj sobie operator []

0

no wlasnie nie chce jezdzic po niej bo ona bedzie duza

jak przeladowac?

0

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.

0

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;

0

@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/

0

Uczylem sie z tego tuta i szczerze polecam.

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