multiset:

multiset<int>s;

定义正向迭代器与正向遍历:

multiset<int>::iterator it;
for(it=s.begin();it!=s.end();it++) {
	printf("%d\n",(*it));
}

定义反向迭代器与反向遍历:

multiset<int>::reverse_iterator rit;
for(rit=s.rbegin();rit!=s.rend();rit++) {
	printf("%d\n",-(*rit));
}

插入一个数x:

s.insert(x)

几种删除:

s.erase(v):删除值为v的所有元素。

s.erase(it):删除迭代器it处的元素。

也就是说可以用s.erase(s.find(v))来删除值为v的一个元素。

查找相关:

s.lower_bound(v):返回第一个大于等于v的迭代器指针。

s.upper_bound(v):返回第一个大于v的迭代器指针。

s.find(v):返回一个等于v的迭代器指针。如果不存在值等于v的元素,则返回s.end()

s.equal_range(v):返回值等于v的第一个迭代器和最后一个迭代器,左闭右开,如果不存在则返回两个s.end()

s.count(v):返回值等于v的元素个数,数据类型为unsigned longlong int,如果不存在返回0,时间复杂度未知,如果重复的个数过多可能会慢。

 

相关文章:

  • 2022-02-16
  • 2021-11-27
  • 2022-12-23
  • 2022-01-10
  • 2022-01-28
  • 2021-11-03
猜你喜欢
  • 2021-07-30
  • 2022-01-04
  • 2022-12-23
  • 2022-12-23
  • 2021-07-09
  • 2021-12-02
  • 2021-06-24
相关资源
相似解决方案