2014-12-15 2 views
-2

Мне нужно подсчитать, сколько раз вызывается «массив [val.a] [val.b] [val.c] [val.d]». Для ex array [0] [1] [2] [1] был вызван один раз из некоторой другой функции. Я делаю это, используя 4d-массив, и я способен получить правильные результаты. Есть ли эффективный способ сделать это?эффективный способ подсчета вхождения

typedef struct 
{ 
    int a; // value of 0<=a<10 
    int b; // 0<=b<10 
    int c; // 0<=c<5 
    int d; //0<=d<3 
}addr; 

int array[10][10][5][3]; // memory used = 10*10*5*3*4bytes= 6Kbytes 
// Is there a way I do not have to use the array . 


void countOccurences(addr val) 
{ 

    array[val.a][val.b][val.c][val.d]++; //giving me correct results. 

} 
+5

Что такое _огда много раз называлась переменной? –

+0

Просьба уточнить, что означает «эффективный» в вашем случае (быстрый, компактный, ...). Должен ли он быть переносным (аппаратное обеспечение, компилятор)? Какие у вас ограничения (относительно использования библиотек, инструментов)? – kestasx

ответ

1

Эффективный? Со временем или памятью? Как вы это делаете, это очень эффективно во времени. Плохо для памяти. Но это не , что плохо.

6kB ничего. Если вы не программируете ic или что-то: P. Во всяком случае, ваша программа должна быть намного больше, чем 6 КБ, поэтому это должно быть небрежным.

Смежные вопросы