mp.insert(pair<int,int>(1,1));
mp.insert(make_pair(2,1));
make_pair就是可以不写类型,但是
pair<int,float>(1,1.1)
make_pair(2,1.1)
是不同的,第一个就是float,而第2个会自己匹配成double。
// make_pair example
#include <utility> // std::pair
#include <iostream> // std::cout
#include <map>
using namespace std;
int main () {
pair <int,int> foo;
pair <int,int> bar;
map<int, int> mp;
mp.insert(pair<int,int>(1,1));
mp.insert(make_pair(2,1));
mp.insert(pair<int,float>(3,1.1));
mp.insert(make_pair(4,1.1));
foo = make_pair (10,20);
bar = make_pair (10.5,'A'); // ok: implicit conversion from pair<double,char>
mp.insert(make_pair<int,int>(1,1));
map<int, int>::iterator it;
for ( it = mp.begin(); it != mp.end(); it++){
//printf("%d-->%d\n", it->first, it->second);
//printf("%d\n", it->first, it->second);
cout << "map: " << it->first << ", " << it->second << endl;
}
cout << "foo: " << foo.first << ", " << foo.second << '\n';
cout << "bar: " << bar.first << ", " << bar.second << '\n';
system("pause");
return 0;
}