Added capacity test.
This commit is contained in:
parent
0e13870efe
commit
3242820e47
1 changed files with 33 additions and 1 deletions
34
README.md
34
README.md
|
@ -43,4 +43,36 @@ _Pour Powershell sur Windows_
|
||||||
run.bat <target_name>
|
run.bat <target_name>
|
||||||
```
|
```
|
||||||
_Pour CMD sur Windows_
|
_Pour CMD sur Windows_
|
||||||
>`<target_name>` étant soit `td_insa` ou `exercice_insa`
|
>`<target_name>` étant soit `td_insa` ou `exercice_insa`
|
||||||
|
|
||||||
|
## Test des allocations entre la bibliothèque standard et mon implémentation
|
||||||
|
|
||||||
|
Voici le code testé :
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
std::vector<int> vectStd;
|
||||||
|
Vector<int> vectYoyo;
|
||||||
|
int capacityStd(0), capacityYoyo(0);
|
||||||
|
size_t tempCapacityStd(0), tempCapacityYoyo(0);
|
||||||
|
for(int i=0; i<15000; i++)
|
||||||
|
{
|
||||||
|
vectYoyo.PushBack(i);
|
||||||
|
vectStd.push_back(i);
|
||||||
|
if(tempCapacityStd != vectStd.capacity())
|
||||||
|
capacityStd++;
|
||||||
|
if(tempCapacityYoyo != vectYoyo.Capacity())
|
||||||
|
capacityYoyo++;
|
||||||
|
tempCapacityStd = vectStd.capacity();
|
||||||
|
tempCapacityYoyo = vectYoyo.Capacity();
|
||||||
|
}
|
||||||
|
std::cout << "Total Yoyo Reallocations: " << capacityYoyo << "\tFinal Capacity: " << tempCapacityYoyo << std::endl;
|
||||||
|
std::cout << "Total Std Reallocations: " << capacityStd << "\tFinal Capacity: " << tempCapacityStd << std::endl;
|
||||||
|
```
|
||||||
|
|
||||||
|
Avec le résultat :
|
||||||
|
|
||||||
|
```
|
||||||
|
Total Yoyo Reallocations: 15 Final Capacity: 16384
|
||||||
|
Total Std Reallocations: 25 Final Capacity: 18207
|
||||||
|
```
|
||||||
|
Mon implémentation possède donc moins de réallocations, ainsi qu'une capacité finale moins grande. (Par comparaison, une simple implémentation augmentant la capacité `_capacity++` à chaque `push_back()` aurait autant de réallocation que de capacité finale. Bien qu'une capacité finale moins élevée.)
|
Loading…
Add table
Reference in a new issue