c ++非常新,但我不能围绕这个
我得到了这一系列的双打,只是想把它变成一个'字符串'中间有空格
在java中我只是遍历所有条目和StringBuilder.append(arr [i])。append('');
我不知道如何用c ++做到这一点,我想出的最好的事情就是这个
wchar_t* getStuff(const double *arr, const int arr_size)
{
std::vector<wchar_t> result(arr_size*2);
for( int i = 0; i < arr_size*2; i++)
{
if ( i % 2 == 0 )
result[i] = ?;
else
result[i] = L' ';
}
return &result[0];
}
我知道这不会编译并包含一些非c代码。
我有点迷失在这里,因为我不知道转换的好方法,这究竟是指针,这是一个真正的价值。
答案 0 :(得分:1)
您可以使用std::wostringstream
来实现此目标。
wchar_t* getStuff(const double *arr, const int arr_size)
{
std::vector<wchar_t> result(arr_size*2);
for( int i = 0; i < arr_size*2; i++)
{
std::wostringstream theStringRepresentation;
theStringRepresentation << arr[i];
// use theStringRepresentation.str() in the following code to refer to the
// widechar string representation of the double value from arr[i]
}
return &result[0];
}
另请注意,返回本地范围变量引用是未定义的行为!
return &result[0]; // Don't do this!
为什么不简单地使用std::vector<std::wstring>
代替std::vector<wchar_t>
?
std::wstring getStuff(const double *arr, const int arr_size) {
std::vector<std::wstring> result(arr_size*2);
for( int i = 0; i < arr_size*2; i++)
{
std::wostringstream theStringRepresentation;
theStringRepresentation << arr[i];
// use theStringRepresentation.str() in the following code to refer to the
// widechar string representation of the double value from arr[i]
}
return result[0];
}