在C++中从char数组的一部分构造一个字符串

Arn*_*aud -3 c++ arrays string wstring

我有一个非常大的wchar_t数组.我想从这个wchar_t数组的一部分构造一个wstring,例如在i和j之间.

我不想将大字符数组转换为wstring,然后取一个子字符串.

我该怎么办?

chr*_*ris 7

使用迭代器对构造函数:

std::wstring str(arr + i, arr + j + 1); //need one past the end
Run Code Online (Sandbox Code Playgroud)

在这种情况下,添加有效,因为指针是随机访问迭代器.对于在迭代器不支持时有效的通用表单operator+,请使用std::next(arr, i)和std::next(arr, j + 1).因为它可以在数组和标准容器上工作,所以std::begin可以用它来代替arr泛型.