Bonjour, j'ai une std::map<int,int> m;

Je fais quelque chose du genre

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
 
for(int i = 0 ; i < N ; i++)
  m.insert(std::make_pair(i,2 * i));
(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 alors

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
 
for(int i = 0 ; i < N ; i++)
  m.insert(m.end(),std::make_pair(i,2 * i));
L'id�e �tant de gagner du temps de calcul.

Maintenant, voici un exemple (avec ma question dedans) :

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
 
#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;
}
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...

Merci d'avance de vos r�ponses.