стоимость перенаправления (адреса) на один и тот же адрес много раз (используется в итераторе)

Если я часто использую косвенное обращение, но цель имеет тот же адрес, станет ли цена косвенного обращения почти нулевой?

Пример :-

class C{
public: int database[100000];
//other functions
};
class B{
public: C* c=nullptr;
};

Первый сценарий

int main(){
//--- first scenario (direct call) ---
C c;
for(int n=0;n<100000;n++){
c.database[n]=43;
//call some complex function about "c"//call some non-related function
}
}

Второй сценарий

int main() {
//--- second scenario (indirection) ---
C c;
B b1;
b1.c=c;
for(int n=0;n<100000;n++){
b1.c->database[n]=43;
//call some complex function about "c", but call in "b1.c" form
//call some non-related function
}
}

Оба случая будут стоить (почти) одинаково?
Насколько велика вероятность того, что он будет оптимизирован, чтобы быть почти одинаковым?

Я считаю, что стоимость косвенного обращения низка c),
но я не знаю, есть ли база Стоимость (b1.c-> против c.)?
(Я новичок в C ++)

В реальном случае B является итератором, и C это связанная структура данных.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]