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 :
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;
}
Le probleme est lorsque je lance le code j'ai des temps qui varie beaucoup :
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