解析简单分隔字符串的 C++ 20 方法

The c++ 20 way to parse a simple delimited string

这里有很多关于如何解析分隔字符串的问题和答案。我正在寻找 C++20 左右的答案。以下作品,但感觉有所欠缺。有什么更优雅的建议吗?

const std::string& n = "1,2,3,4";
const std::string& delim = ",";
std::vector<std::string> line;
for (const auto& word : std::views::split(n, delim)) {
    line.push_back(std::string(word.begin(), word.end()));
    }

不需要创建std::string类型的子串,可以使用std::string_view来避免不必要的内存分配。 随着C++23的引入ranges::to,这可以写成

const std::string& n = "1,2,3,4";
const std::string& delim = ",";
const auto line = n | std::views::split(delim)
                    | std::ranges::to<std::vector<std::string_view>>();

Demo