gpt4 book ai didi

c++ - 转换一串整数的最有效方法是什么,例如(1,5,73,2) 成一个整数数组?

转载 作者:行者123 更新时间:2023-11-30 05:22:59 25 4
gpt4 key购买 nike

我在用 Java 编码时遇到过类似的问题,在那个例子中,我使用 str1.split(",") 将整数字符串更改为整数数组。

C++ 中是否有一种方法与 Java 的 split 方法具有类似的功能,或者使用 for 循环实现相同目标的最佳方法是什么?

最佳答案

使用 std::istringstream解析出来肯定会更方便。

但要问的问题是什么才是最“有效”的。而且,无论好坏,#include <iostream>以其效率而闻名。

一个简单的for为了效率,循环将很难被击败。

假设输入不包含任何空格,只包含逗号和数字:

std::vector<int> split(const std::string &s)
{
std::vector<int> r;

if (!s.empty())
{
int n=0;

for (char c:s)
{
if (c == ',')
{
r.push_back(n);
n=0;
}
else
n=n*10 + (c-'0');
}
r.push_back(n);
}
return r;
}

请随意再次对此进行基准测试 istreamistream_iterator基于方法。

关于c++ - 转换一串整数的最有效方法是什么,例如(1,5,73,2) 成一个整数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39402516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com