C++STL常用操作之multiset篇
简介:
multiset和set大致上是一样的,都是集合。
set详细介绍见:https://blog.csdn.net/qq_45985728/article/details/112791689
multiset和set不同的点在于multiset允许存在重复的元素。
multiset<int> multi;
multi.insert(2);
multi.insert(3);
multi.insert(2);
multi.insert(1);
multi.insert(2);
for (auto it = multi.begin(); it != multi.end(); ++it)
cout << *it << endl;
我们可以看出,multiset里面,确实是允许重复元素出现的。
multiset<int> multi;
multi.insert(2);
multi.insert(3);
multi.insert(2);
multi.insert(1);
multi.insert(2);
multi.erase(2);
for (auto it = multi.begin(); it != multi.end(); ++it)
cout << *it << endl;
而multiset里面的erase函数对于指定的key值来说,是删除所有的等于key值的元素。如上程序中,原始状态是1、2、2、2、3,但是只执行了一句erase(2)后,剩余的元素只有1、3了。
multiset<int> multi;
multi.insert(2);
multi.insert(2);
cout << multi.count(2);
程序输出结果是2
我们前面set篇提到,count的返回值只能是1或0(存在或者不存在)。由于multiset允许重复元素的出现,所以count的返回值可能大于1。
multiset
发现问题欢迎指正!