C++ map中erase方法的使用

16 篇文章 0 订阅

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

//erase方法调用————循环中局部删除某些元素
std::map<int, int> b;
b[1] = 5;
b[2] = 6;
b[3] = 7;
b[4] = 8;
for (std::map<int, int>::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;

运行结果如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值