C++ filesystem 取后三项
时间: 2023-07-11 10:40:08 浏览: 134
C++ 标准程序库
你可以使用`std::filesystem::path`类的`std::distance`和`std::prev`函数来获取路径中的后三项。具体来说,你可以使用`std::distance`函数计算路径中元素的个数,并使用`std::prev`函数获取路径中从末尾开始数的前三个元素。以下是示例代码:
```c++
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main() {
std::string path_str = "/usr/local/bin";
fs::path p(path_str);
// 获取后三个元素
auto it = std::prev(p.end(), 3);
for (; it != p.end(); ++it) {
std::cout << *it << std::endl;
}
return 0;
}
```
在上面的代码中,首先将路径字符串`"/usr/local/bin"`转换为`std::filesystem::path`类型的对象`p`。然后,使用`std::prev(p.end(), 3)`获取从末尾开始数的前三个元素的迭代器,最终使用循环输出了后三个元素`"local"`、`"bin"`和空字符串。注意,路径中的最后一个元素可能是空字符串,因此在使用时需要进行判断。
阅读全文