【发布时间】:2012-03-25 11:03:11
【问题描述】:
作为家庭作业的一部分,我需要在 C++ 中连接数组中的某些值。因此,例如,如果我有:
int v[] = {0,1,2,3,4}
我可能需要在某些时候连接 v[1] -> v[4] 以便我得到一个值为 1234 的 int。
我通过将值附加到字符串流然后转换回整数来使用字符串流使其工作。然而,在整个程序中,最终将有大约 300 万种不同的 v[] 排列传递给我的 toInt() 函数,并且 stringstream 似乎相当昂贵(至少在处理这么多值时)。它工作正常,但速度很慢,我正在尽我所能优化它。
在 C++ 中连接数组中的整数是否有更优化的方法?我已经进行了一些搜索,几乎所有地方似乎都建议使用 stringstream(它有效,但似乎大大减慢了我的程序)。
编辑:澄清一下,我确实需要将结果设为 int。
【问题讨论】:
-
如果其中一个整数大于 9 会发生什么?还是否定的?
-
“连接”是什么意思?你想要字符串还是数字?乘以 10 发生了什么?
-
@Mat - 数组中的值始终介于 0 和 9 之间。
-
"Concatenating ints" 绝对是错误的表达方式。您正在连接 digits,十进制数字。如果这些在你的程序中显示为
ints,那么一开始是非常无效的。
标签: c++ arrays concatenation stringstream