Bonjour, j'ai une std::map<int,int> m;
Je fais quelque chose du genre
(l'exemple est b�te, mais l� n'est pas ma question). En gros, je fais toujours une insertion dans ma map au dernier �l�ment. J'ai vu que je pouvais indiquer via un iterator, un "indice" � partir du quel ins�rer mon nouvel objet. L'exemple pr�c�dent deviendrait alorsCode:
1
2
3 for(int i = 0 ; i < N ; i++) m.insert(std::make_pair(i,2 * i));
L'id�e �tant de gagner du temps de calcul.Code:
1
2
3 for(int i = 0 ; i < N ; i++) m.insert(m.end(),std::make_pair(i,2 * i));
Maintenant, voici un exemple (avec ma question dedans) :
J'avoue ne pas comprendre pourquoi l'�l�ment (1,1) est ins�r� car je lui ai dis d'ins�rer � partir du dernier �l�ment...Code:
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 #include <map> #include <iostream> using namespace std; void printMap(const map<int,int> & m) { //for(size_t i = 0 ; i < m.size() ; i++) map<int,int>::const_iterator it; for(it = m.begin() ; it != m.end() ; it++) cout << it->first << " : " << it->second << endl; cout << endl; } int main() { map<int,int> m; m.insert(make_pair(0,0)); m.insert(make_pair(3,3)); m.insert(make_pair(2,2)); m.insert(m.end(),make_pair(4,4)); m.insert(m.begin(),make_pair(5,5)); m.insert(m.end(),make_pair(1,1)); // pourquoi cet élément est-il inséré ? m.insert(make_pair(2,0)); printMap(m); return 0; }
Merci d'avance de vos r�ponses.