gpt4 book ai didi

c++ - 是否可以从一系列路径迭代器或子路径创建文件系统 TS basic_path?

转载 作者:行者123 更新时间:2023-11-30 05:44:04 25 4
gpt4 key购买 nike

我正在尝试创建 basic_path 的一层深度子路径(data/images/lol.png -> images/lol.png)。

我尝试了类似 std::path{++path.begin(), path.end() } 但范围构造函数显然需要 string_type::iterator s,而不是 basic_path::iterators。

我是否可以使用 basic_path 方法来做我需要的事情,或者我是否必须使用类似 std::accumulate(++path.begin(), path. end() )(恕我直言,效率很低)?

最佳答案

我能找到的最好的是

path subpath(path p) {
auto pathString = p.native();
auto newBegin = find(pathString.begin(), pathString.end(), path::preferred_separator);
return path{ ++newBegin, pathString.end() };
}

它只需要一次分配,但它的时间复杂度仍然是 O(n),但是我想不出有什么方法可以进一步加快速度。

它仍然比 accumulate(200 个字符路径)快:

accumulate: 31386 ns ± 5336.29
my subpath: 785.857 ns ± 422.013

关于c++ - 是否可以从一系列路径迭代器或子路径创建文件系统 TS basic_path?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29955632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com