【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 哈希表->查找较快
一个超时了就换另一个(

插入元素
直接用mapStudent[123] = "student_first";
查找元素
q.find()
查找keyiter = mapStudent.find("123");
当查找元素出现时:返回位置
q.count()
返回指定元素出现的次数->可用来查找元素是否出现
当查找元素没有出现时:返回q.end()
删除元素 erase
迭代器删除 我们热血沸腾的组合技!
mapStudent.erase(mapStudent.find("123"))
大小 size
返回当前插入了多少元素
清空
q.clear()

浙公网安备 33010602011771号