从C++23(或使用range-v3库)开始,我们可以用一个分隔符连接一个范围:
std::vector<std::string> v{ "This", "is", "it" };
std::string result = v | std::views::join_with(' ') | std::ranges::to<std::string>();
// result is "This is it".
字符串
但是如果我需要一个分隔符字符串而不是一个分隔符字符,例如双空格?我怎么能这样做的范围?
1条答案
按热度按时间dsf9zpds1#
view::join_with
already 接受一个范围作为分隔符,因此更改它:字符串
应该注意的是,在P2281之后,range adapter对象保存 by value 衰减的参数,所以你 * 不能 * 使用原始字符串文字
" "
作为分隔符,因为它衰减为const char*
,这不是一个范围。