C++ map中erase方法的使用

C++map中erase方法的使用在不同版本的编译器里面使用不一样,一般性的使用方法如下:

//erase方法调用————循环中局部删除某些元素
std::map b;
b[1] = 5;
b[2] = 6;
b[3] = 7;
b[4] = 8;
for (std::map::iterator iter = b.begin(); iter != b.end();)
{
    if (iter->first % 2 == 0)
    {
	    //iter = b.erase(iter);//这个只有在C++11才能有效
        b.erase(iter++);//这个是旧版的也有效(注意必须是要这样的形式,b.erase(iter), i++;的形式都编译不通过)
    }else
        ++iter;
    }
}

局部删除b里面关键字为奇数的记录;

for (auto x : b)
		cout << x.first << " " << x.second << endl;

运行结果如下

你可能感兴趣的:(C/C++)