如何将路径拆分为子路径并将其存储在std::vector中?

How to split a path to subpaths and store it in std::vector?

我的问题是如何将我的主路径拆分成几个单独的子路径并将其存储在向量或列表中?

例子

我有路径例如:

Assets/A/B/C

我需要将它们分成单独的子路径(或只是字符串):

Assets
A
B
C

然后存储在std::vector中。最后一部分我只知道如何做 push_back(s) 其中 s 每个 subpath/string,但是如何得到这个 s?

标准库中有这样的可能性吗std::filesystem还是我需要自己找到两个斜杠的位置,得到一个在第一个和下一个斜杠边界内的字符串?

A std::filesystem::path 是可迭代的,所以你可以简单地写:

for(auto p:path)
    vector.push_back(p.string());

或更短:

std::vector(path.begin(),path.end());

如果不需要字符串,但子路径向量也可以。