当map中的insert函数插入失败后,返回值应该是 **pair<iterator, bool>**型,第二个参数bool值在插入成功时返回true,失败时返回false
那么第一个返回值iterator是什么?
很自然地想到这个迭代器应该指向被插入的数据。
若插入成功,就指向新插入的数据。
若插入不成功,就指向与待插元素冲突的数据。
#include<iostream>
#include<string>
#include<map>
using namespace std;
map<string,int>article;
int main()
{
pair<map<string,int>::iterator,bool> flag1 = article.insert(make_pair("apple",1));
cout << flag1.first->first <<endl;
pair<map<string,int>::iterator,bool> flag2 = article.insert(make_pair("banana",1));
cout << flag2.first->first <<endl;
pair<map<string,int>::iterator,bool> flag3 = article.insert(make_pair("apple",1));
cout << flag3.first->first <<endl;
return 0;
}
结果验证了刚才的猜想