一些可能不知道或不熟悉的有用但冷门的库函数

提取自洛谷日报 从 C++98 到 C++20,寻觅甜甜的语法糖们 中 C++98 到 C++14 的部分。

这是菜鸡作者写给自己看的,你认为有缺失可以在评论区说,但是不一定会添加。

函数所位于的库就不写了,反正都 #include<bits/stdc++.h> 了。

  • __lg(x) :GNU 私货。返回 log2x__builtin 套皮实现,时间复杂度 O(1),常数很小。
  • partial_sum(bg1, ed1, bg2)[bg1,ed1) 的前缀和,并存入以 bg2 为起始的地址。可以传入第四个参数作为加法。可以原地求前缀和。
  • adjacent_difference(bg1, ed1, bg2)[bg1,ed1) 的差分,并存入以 bg2 为起始的地址。可以传入第四个参数作为减法。可以原地求差分。
  • minmax(a, b) :返回一个 pair<>,其 firstmin(a,b)secondmax(a,b)
  • max(l)/min(l)l 是一个初始化列表,返回 l 中最大 / 最小的元素。可以把恶心的 max(max(a, b), max(c, d)) 换成 max({a, b, c, d}) 辣!
  • minmax(l)l 是一个初始化列表,作用类比 minmax(a, b)
  • max/min/minmax_element(bg, ed) :作用看名字。可以用来求某些 DP 题的最终解。
  • iota(bg, ed, val) :将 [bg,ed) 中的元素依次赋值为 val,val+1,val+2, 可用于给并查集初始化。是 iota,不是 itoa,不要写混。
  • hypot(x, y)返回 x2+y2
  • accumulate(bg, ed) 求和,可以多传一个参作为加法。
  • __builtin 系列
posted @   untitled0  阅读(40)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示