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

如何用{fmt}库实现每n个元素换行格式化数组?

使用{fmt}库实现长数组按指定元素数换行格式化

完全可以实现。下面提供两种简洁的实现方式,都能满足你每5个元素后插入换行的需求:

方法一:按组批量格式化

直接将数组按每5个元素为一组拆分,每组用fmt::join格式化后拼接换行(最后一组末尾不添加换行):

#include <fmt/core.h>
#include <vector>
#include <algorithm>

int main() {
    std::vector<double> xs {
        5.426221e-01, 1.129279e-01, 1.122641e-03, 9.013848e-01,
        2.290470e-01, 7.200987e-01, 9.283220e-01, 5.108471e-01,
        9.294625e-01, 8.451856e-01, 9.558900e-01, 4.757722e-01,
        4.878883e-01, 8.988282e-01, 4.536756e-01, 3.459857e-01,
        1.216555e-01, 3.884544e-01, 3.217016e-01, 4.758714e-01,
        2.230451e-01, 7.985618e-01
    };

    std::string output;
    const int elements_per_line = 5;
    for (size_t i = 0; i < xs.size(); i += elements_per_line) {
        auto end_idx = std::min(i + elements_per_line, xs.size());
        output += fmt::format("{:16.8e}", fmt::join(xs.begin() + i, xs.begin() + end_idx, ""));
        if (end_idx != xs.size()) {
            output += '\n';
        }
    }

    fmt::print("{}", output);
    return 0;
}

方法二:逐个元素格式化并判断换行

遍历每个元素,格式化后根据索引判断是否需要插入换行:

#include <fmt/core.h>
#include <vector>
#include <string>

int main() {
    std::vector<double> xs {
        5.426221e-01, 1.129279e-01, 1.122641e-03, 9.013848e-01,
        2.290470e-01, 7.200987e-01, 9.283220e-01, 5.108471e-01,
        9.294625e-01, 8.451856e-01, 9.558900e-01, 4.757722e-01,
        4.878883e-01, 8.988282e-01, 4.536756e-01, 3.459857e-01,
        1.216555e-01, 3.884544e-01, 3.217016e-01, 4.758714e-01,
        2.230451e-01, 7.985618e-01
    };

    std::string output;
    const int elements_per_line = 5;
    for (size_t i = 0; i < xs.size(); ++i) {
        fmt::format_to(std::back_inserter(output), "{:16.8e}", xs[i]);
        if ((i + 1) % elements_per_line == 0 && i != xs.size() - 1) {
            output += '\n';
        }
    }

    fmt::print("{}", output);
    return 0;
}

两种方式都能生成你需要的格式化输出,可根据自己的习惯选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:05:33