【STL运用】(算法竞赛)

【STL运用】

二分查找:upper_bound()lower_bound()

运用条件:有序集合

查找基本规则

找到返回该数字的地址,没找到则返回end

基础用法

在从小到大的排好序的数组中

upper_bound(begin, end, value)

二分查找第一个大于value的数

lower_bound(begin, end, value)

二分查找第一个大于等于value的数

greater<type>重载

从大到小排好序的数组

//第一个小于
upper_bound(begin, end, value, greater<int>())
//第一个小于等于
lower_bound(begin, end, value, greater<int>())

map 键值对 [key : value]

本质是pair的集合
map 红黑树->插入较快
unordered_map 哈希表->查找较快
一个超时了就换另一个(
image

插入元素

直接用mapStudent[123] = "student_first";

查找元素

q.find()

查找keyiter = mapStudent.find("123");
当查找元素出现时:返回位置

q.count()

返回指定元素出现的次数->可用来查找元素是否出现
当查找元素没有出现时:返回q.end()

删除元素 erase

迭代器删除 我们热血沸腾的组合技!
mapStudent.erase(mapStudent.find("123"))

大小 size

返回当前插入了多少元素

清空

q.clear()

posted @ 2025-01-22 19:56  White_ink  阅读(7)  评论(0)    收藏  举报