bonjour,
voila j'utilise dans mon code la fonction std::find() et j'aimerai connaitre le temps moyen qu'elle met pour réaliser sa fonction. J'ai donc fait le code :
Le probleme est lorsque je lance le code j'ai des temps qui varie beaucoup :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 int main(int argc, char const *argv[]) { std::vector<int> tab; std::vector<double> tabtime; for(int i = 0; i < 100; i++) { tab.push_back(i); } for (int n = 0; n < 100; n++) { auto start = std::chrono::system_clock::now(); if( std::find(tab.begin(), tab.end(), n) != tab.end() ) { //cout << "element find" << endl; } else { //cout << "element do not find" << endl; } auto end = std::chrono::system_clock::now(); std::chrono::duration<double> elapsed_seconds = end-start; tabtime.push_back(elapsed_seconds.count()); } double somme = 0; for (int i = 0; i < tabtime.size(); ++i) { somme+= tabtime[i]; } cout << "time std::find = " << somme/(double)tabtime.size() << endl; return 0; }
1er essai : 8.6e-07
second essai :1.74e-06
troisieme essai :5.2e-07
...
et je ne comprend pas pourquoi. Normalement sur 100 lancements de la fonction de devrais avoir une bonne estimation. Avez vous une idée de comment résoudre le probleme ?
Merci d'avance
Partager