2012-01-20 1 views
2

Мне нужно делать вычисления на основе переменного количества данных, каждый item в данных, содержащих 3 значения. Я мог бы использовать массив , struct или класс для представления одного из предметов.Есть ли разница в скорости использования массива, структуры или класса?

Есть ли разница в скорости или они ведут себя одинаково?

// #1: Only arrays 
typedef int triple[3]; 

// #2: Using a struct 
struct triple { 
    int a; 
    int b; 
    int c; 
}; 

// #3: Using a class 
class triple { 
public: 
    int a; 
    int b; 
    int c; 
}; 
+0

Вы попробовали измерить его? –

+1

Почему бы не заставить его работать сначала таким образом, который интуитивно понятен для вас? Кому важно, насколько быстро работает неполная программа? – GManNickG

+0

Не беспокойтесь о неправильном материале. Сначала заработайте. Затем профиль или * [случайная пауза] (http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024#378024) *, чтобы увидеть, что вы нужно беспокоиться, если угодно. –

ответ

7

Структуры и классы такие же, насколько это возможно. Пока вы используете постоянный индекс, вся математика выполняется во время компиляции, поэтому она не должна иметь никакого значения.

+0

Что вы имеете в виду с * Пока вы используете постоянный индекс *? –

+1

тройной [0] должен быть таким же, как tripple.a. triple [i] потребует немного времени выполнения математики (очень мало ...) – smparkes

+0

Я вижу, спасибо, это то, о чем я не думал. :) Даже это может быть не очень важно. –

1

Вначале не должно быть разницы между struct и class с public:, и я подозреваю, что не будет никакой разницы с массивом. Не во время выполнения.

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