STL (C++)-STL 中multimap 上 删除指定位置的元素

服务器管理 服务器管理 主题:1035 回复:2217

STL (C++)-STL 中multimap 上 删除指定位置的元素

虐人心 发布于 2017-07-25 字数 50 浏览 1197 回复 2

如何删除multimap上指定位置的元素? 示例代码

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

瑾兮 2017-10-25 2 楼

具体一下你说的指定位置是什么意思?

multimap<char,int> mymultimap;
multimap<char,int>::iterator it;
mymultimap.insert(pair<char,int>('a',10));
mymultimap.insert(pair<char,int>('b',20));
mymultimap.insert(pair<char,int>('b',30));
it=mymultimap.find('b');
mymultimap.erase (it); // 这是根据位置删除的的,指挥删除一个元素

虐人心 2017-08-06 1 楼

因为multimap允许出现重复键所以建议用以下方法!
可以使用multimap.lower_bound/upper_bound获得特定key的范围区间:

it first = mymultimap.lower_bound('b');
it last = mymultimap.upper_bound('b');
mymultimap.erase(first, last); //erase all 'b'

如果b有多项,则可以通过遍历(first, last)获取具有想要的value的那一项。