笔试题:假如map中有10000个整数(1-10000),编码实现删除map中的所有偶数。
实现代码如下:(为了方便看到测试结果,程序中我把10000换成了20)
#include <iostream>
#include <stdio.h>
using namespace std ;
int main()
{
std::map<int, int> m;
for(int i = 1; i<= 20; i++){
m.insert(pair<int, int>(i, i));
}
cout<<"before: "<<m.size()<<endl;
std::map<int, int>::iterator it;
for(it = m.begin(); it != m.end(); )
{
if(it->second %2 == 0)
{
m.erase(it++);
}
else{
it++;
}
}
cout<<"after: "<<m.size()<<endl;
std::map<int, int>::iterator it1;
for(it1 = m.begin(); it1 != m.end(); it1++)
{
cout << "m[" << it1->first << "]=[" << it1->second << "]" << endl;
}
return 0;
}
运行结果如下: