c++一句话求前缀和,不用循环

partial_sum 是 C++ 标准库中的一个函数,用于计算给定范围内元素的部分和。它接受三个参数:

  1. 起始迭代器(包含在计算范围内的第一个元素)
  2. 结束迭代器(不包含在计算范围内的最后一个元素)
  3. 输出迭代器(存储部分和结果的起始位置)

在这个例子中,a.begin() + 1 表示从数组 a 的第二个元素开始计算部分和,a.end() 表示计算到数组 a 的末尾,a.begin() + 1 作为输出迭代器,将部分和的结果存储在数组 a 的第二个元素开始的位置。

cpp 复制代码
#include <iostream>
#include <vector>
#include <numeric>

int main() {
    std::vector<int> a = {1, 2, 3, 4, 5};
    std::partial_sum(a.begin() + 1, a.end(), a.begin() + 1);

    for (int x : a) {
        std::cout << x << " ";
    }

    return 0;
}

补充:

  1. lower_bound :该函数返回指向在排序数组中可以插入指定元素而不破坏排序的点的第一个迭代器。换句话说,它找到序列中第一个不小于(即大于或等于)给定值的位置。这在查找某个值应该被插入到数组中的位置时非常有用,以确保数组保持排序状态。
  2. equal_range :这个函数返回一个迭代器对 ,表示在排序序列中与给定值相等的元素的范围。它返回两个迭代器,第一个对应于lower_bound的结果第二个对应于upper_bound的结果 。这一功能常用于需要同时得到等于给定值的元素的起始和结束位置的情况
  3. binary_search :此算法用于在排序序列中查找特定值是否存在。与find不同,binary_search假设序列已经排序,因此使用二分查找方法 ,时间复杂度为O(log n),比find的O(n)更快。当需要在大量数据中快速查找元素是否存在时,这种方法非常高效。
  4. max_element/min_elementmax_element返回一个迭代器,指向序列中最大元素的位置;而min_element返回指向最小元素位置的迭代器。这两个函数提供了一种方便的方法来找到序列中的极值,对于统计分析和数据处理尤其有用。
  5. adjacent_find :该函数返回一个迭代器,指向序列中第一对相邻重复元素的位置。这对于查找重复数据或进行数据验证非常有用。
  6. 注意点:这些函数大多是返回迭代器,不能直接使用,如果要用下标,直接用 表达式-a.bgin() 这样就是下标了。还有用二分查找函数的时候,(比如下标是1------n,但是如果没有的话,他会搜到下一个也就是容器的end)。
相关推荐
t198751285 分钟前
基于Qt的OSG三维建模
java·开发语言
AI视觉网奇43 分钟前
3d关键点 可视化
开发语言·python·pygame
向宇it1 小时前
【unity游戏开发——编辑器扩展】使用EditorGUI的EditorGUILayout绘制工具类在自定义编辑器窗口绘制各种UI控件
开发语言·ui·unity·c#·编辑器·游戏引擎
Python私教1 小时前
Rust:重新定义系统编程的安全与效率边界
开发语言·安全·rust
cainiao0806051 小时前
Java 大视界——Java 大数据在智慧交通智能停车诱导系统中的数据融合与实时更新
java·大数据·开发语言
瑞雪兆丰年兮2 小时前
数学实验(Matlab符号运算)
开发语言·算法·matlab·数学实验
chxii2 小时前
6.2字节流
java·开发语言
八股文领域大手子2 小时前
Java死锁排查:线上救火实战指南
java·开发语言·面试
点云SLAM2 小时前
Python中列表(list)知识详解(2)和注意事项以及应用示例
开发语言·人工智能·python·python学习·数据结果·list数据结果
国强_dev2 小时前
任意复杂度的 JSON 数据转换为多个结构化的 Pandas DataFrame 表格
开发语言·python