Bonjour à tous,
Comme exercice j'essaie d'écrire un générateur de nombres premiers à l'aide de la STL et d'itérateurs.
J'ai réussi à faire quelque chose qui fonctionne, mais il y a des détails qui m'ennuient.
Voici le programme:
Le résultat final est correct (le vecteur résultata contient 2, 3, 5, 7 comme prévu pour b=10). Mais voici la sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
35
36
37
38
39
40
Lors de l'itération 1, *it prend les valeurs 2, 3, 4 puis revient à 3. C'es là que je ne comprend pas comment fonctionne l'itérateur. Le problème vient a priori du fait que je modifie s dans le for et qu'on se mélange les pinceaux dans les adresses mémoires. Malheureusement je ne trouve pas d'explication sur ce qu'il se passe (je pense que lorsque je supprime un élement de s, ça décale tout vers la droite mais je ne comprend toujours pas pourquoi ça revient à 3 au lieu de passer à 5... Quelqu'un pourrait-il m'éclairer?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

 

 
		
		 
         
 

 
			
			


 
   


 comportement d'un itérateur
 comportement d'un itérateur
				 Répondre avec citation
  Répondre avec citation
Partager