You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用std::accumulate计算QVector<QVector<MyKlass>>的子向量总大小?

用std::accumulate计算嵌套QVector的子向量大小之和

你可以通过std::accumulate结合lambda表达式实现这个需求,核心是指定累加逻辑来遍历外层向量并累加每个子向量的大小:

首先需要包含std::accumulate所在的头文件:

#include <numeric>

然后替换你的循环代码为:

// 假设datas是QVector<QVector<MyKlass>>类型的变量
m_countOfSamples = std::accumulate(datas.begin(), datas.end(), 0,
    [](int total, const QVector<MyKlass>& subVec) {
        return total + subVec.size();
    });

注意事项:

  • 如果你的计数器m_countOfSamples是size_t类型(更适合计数场景,避免溢出),需要调整初始值和lambda的参数类型:
m_countOfSamples = std::accumulate(datas.cbegin(), datas.cend(), static_cast<size_t>(0),
    [](size_t total, const QVector<MyKlass>& subVec) {
        return total + subVec.size();
    });
  • 使用cbegin()/cend()可以确保迭代器是const类型,避免不必要的拷贝或修改。

内容的提问来源于stack exchange,提问作者user21959052

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 11:37:01