STL-set学习笔记

set本质是平衡数,插入的数会自动排序并去重

  1. 插入
s.insert(1)
  1. 删除

<1> erase(id) 删除指针id指向的数

<2> erase(lid,rid) 删除lid到rid所指向区间的数,且该区间为前闭后开区间

<3> erase(val) 删除值val

  1. 遍历

set的遍历涉及指针,其数据类型为 set<int>::iterator,因为是指针,所以只能判不等

遍历区间[lid,rid]:

rid++;
while(lid!=rid)
{
  ……
  lid++;
}
  1. 二分查找

<1> lower_bound(val) 第一个大于等于val的数的地址

<2> upper_bound(val) 第一个大于val的数的地址

因为是地址,所以只能用指针记录

如果所有数都比val小,就返回end(),如果所有数都比val大,就返回begin()

posted @ 2024-10-20 16:05  wangsiqi2010916  阅读(12)  评论(0编辑  收藏  举报