#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
class PrintElement//伪函数
{
public:
void operator()(const pair<int, int>& element)
{
cout << element.first << ", " << element.second << endl;
}
};
int main()
{
map<int,int>m;
m.insert(make_pair(1,10));
m.insert(make_pair(2,20));
m.insert(make_pair(3,30));
m.erase(m.begin(),++m.begin());//我想删除第一和第二个元素,为啥只删了第一个
for_each(m.begin(),m.end(),PrintElement() );
}
你是++ 所以只删除一个
改成这样就可以
m.erase(m.begin(), m.begin() + 2); // 从开头开始删除前两个元素
map<int, int>::iterator it = m.begin();
m.erase(it);//可以传迭代器
m.erase(2);//也可以直接传key值
但是传的迭代器必须保证是有效迭代器,而传key值随意传。(即使这个key值不存在)