Bonjour,
J'ai besoin de stocker des objets uniques, donc j'utilise des set, mais il semble que l'opérateur insert rend les objets du set const, et moi j'ai besoin de les stocker, mais ensuite de modifier certains de leurs attributs.
Est-ce qu'il y a moyen d'insérer des objets non constants dans un set ? Sinon, est-ce que quelqu'un pourrait me conseiller une façon de stocker mes objets en pouvant les modifier ?
Si jamais voilà un ptit code pour illuster mon problème :
A la ligne 32 le compilateur dit que c'est pas possible de modifier l'objet parce qu'il est const.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 1. #include <iostream> 2. #include <set> 3. 4. using namespace std; 5. 6. class Constraint{ 7. 8. public: 9. int id; 10. set< int > detectors; 11. 12. Constraint(int a){ 13. this->id = a; 14. }; 15. void insertDetector(int det){ 16. this->detectors.insert(det); 17. return; 18. }; 19. 20. 21. }; 22. 23. int main(){ 24. 25. set< Constraint > mon_ensemble; 26. for (int a(1); a<3; a++){ 27. Constraint contrainte(a); 28. contrainte.insertDetector(2); 29. mon_ensemble.insert(contrainte); 30. } 31. for(set< Constraint >::iterator it(mon_ensemble.begin()); it != mon_ensemble.end(); it++){ 32. (*it).insertDetector(1); 33. } 34. return 0; 35. }
Merci beaucoup !
Partager