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

C++字符列表转整数列表无需循环重计算的实现咨询

实现方法

方法1:使用std::transform标准算法(兼容C++11及以上版本)

借助标准库算法无需手动编写for循环遍历逻辑,首先需要引入头文件:

#include <algorithm>

替换你原有std::list<int>构造的代码即可:

std::list<int> listInt;
listInt.reserve(listCharInt.size());
std::transform(listCharInt.begin(), listCharInt.end(), std::back_inserter(listInt), [](char c) {
    // 用'0'代替硬编码48,兼容性更强,不受字符集限制
    return c - '0';
});

你也可以完全跳过std::list<char>中间层,直接从字符串构造目标整数列表,性能更高:

std::list<int> listInt;
std::transform(int1.begin(), int1.end(), std::back_inserter(listInt), [](char c) {
    return c - '0';
});

方法2:C++20 范围视图实现

如果你的编译器支持C++20标准,可以用范围适配器写出更简洁的代码,需要引入头文件:

#include <ranges>

构造代码:

auto char_to_int = [](char c) { return c - '0'; };
std::list<int> listInt = listCharInt | std::views::transform(char_to_int) | std::ranges::to<std::list>();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:24:01