porównanie szybkości pewnych intrukcji

0

Mam pytanie, co będzie szybsze:

vector<int>Tab[10];
if(Tab[i].size()==0)
{
//jakiś program
}
vector<int>Tab[10];
int *Tab_pom=new int*[10] 
if(Tab_pom[i]==0)
{
//ten sam program +instrukcja:
// związana z uaktualnianiem Tab_pom[i]
}

Chodzi mi o to czy warto tworzyć zmienną pomocniczą Tab_pom, której odpowiednie współrzędne przechowują rozmiar odpowiadających współrzędnych wektora Tab czy nie warto, bo z tego Tab[i].size() można się dowiedzieć. Czyli walka się rozgrywa między czasem sprawdzania warunków:
if(Tab[i].size()==0)
a
if(Tab_pom[i]==0) + czas instrukcji np. Tab_pom[i]++;

0

zamiast size() == 0 powinno sie dawac chyba empty(). dodatkowa tablica raczej zwolni program.

0

nie warto. czas wykonania tab[i].size() jest staly i m-wiecej rowny czasowi odczytu pola struktury ktory jest rowny czasowi 'oindeksowania' tablicy.. szybciej juz nie bedzie..

*) jesli kompilujesz w DEBUG, roznica bedzie, bo kompilator MOZE nie zoptymalizuje wywolania size(). jak skompilujesz w trybie normalnym (Release) to wywolan .size() nie zauwazysz..

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