Cześć, mam do was takie pytanie:
mam taki kod:
unsigned int size = 100000000;
vector<double> tab1;
vector<double> tab2;
tab1.resize(size);
tab2.resize(size);
for(unsigned int i = 0; i < size; i++)
{
tab1[i] = rand() / RAND_MAX;
tab2[i] = rand() / RAND_MAX;
}
Powiedzcie mi proszę, jak to jest możliwe, że działanie typu:
vector1 = vector2;
jest szybsze (i to dość znacząco) od:
for(unsigned int i=0; i<size; i++)
vector1[i] = vector2[i];
?
Przecież przy przypisywaniu vector i tak musi jakoś przypisać te wartości tj. i tak musi wykonać podobną (jaką?) czynność jak pętla plus dodatkowe takie, jak chociażby sprawdzenie, czy rozmiar jest taki sam (bo jeśli nie to konieczne jest utworzenie nowej tablicy)...
Z góry dzięki za wyjaśnienie.
dodanie znacznika <code class="cpp"> - fp