c ++ int []到string

use*_*902 1 c++ arrays string int

我有一大堆需要转换为字符串的整数.该数组的长度约为1000-10000英寸,所有这些整数的值都在0-9之间.有没有任何快速有效的STANDARD方法将整个int数组转换为字符串?它必须只使用标准库来完成.谢谢.

ipc*_*ipc 7

旧C++:

std::string s; s.reserve(arr_len);
std::transform(arr, arr+arr_len, std::back_inserter(s),
               std::bind1st(std::plus<int>(), '0'));
Run Code Online (Sandbox Code Playgroud)

C++ 11:

 std::transform(arr, arr+arr_len, std::back_inserter(s),
               [](int c){return c+'0';});
Run Code Online (Sandbox Code Playgroud)

不是1 +'0'不一定是'1',但在实践中你可以安全地假设.

  • 该标准保证十个十进制数字按顺序递增,因此"1 +"0"保证为"1".(这是关于编码的唯一保证 - 特别是`1 +'a''不能保证是''b'.甚至是一封信.) (2认同)

Let*_*_Be 6

std::string还是C string

无论如何,对于一个角色,转换是: char c = array[i]+'0';

扩展到整个阵列,你就完成了.