std::filesystem:: begin (directory_iterator) , std::filesystem:: end (directory_iterator)
From cppreference.net
<
cpp
|
filesystem
|
directory iterator
|
定义于头文件
<filesystem>
|
||
|
directory_iterator begin
(
directory_iterator iter
)
noexcept
;
|
(1) | (C++17 起) |
|
directory_iterator end
(
directory_iterator
)
noexcept
;
|
(2) | (C++17 起) |
1)
返回保持不变的
iter
。
2)
返回一个默认构造的
directory_iterator
,该迭代器作为结束迭代器使用。参数将被忽略。
这些非成员函数使得
directory_iterator
能够用于基于范围的 for 循环
,并将
directory_iterator
转变为
range
类型
(since C++20)
。
目录 |
参数
| iter | - |
一个
directory_iterator
|
返回值
1)
iter
保持不变。
2)
结束迭代器(默认构造的
directory_iterator
)。
示例
运行此代码
#include <filesystem> #include <fstream> #include <iostream> namespace fs = std::filesystem; int main() { fs::create_directories("sandbox/a/b"); std::ofstream("sandbox/file1.txt"); std::ofstream("sandbox/file2.txt"); for (auto& p : fs::directory_iterator("sandbox")) std::cout << p << '\n'; fs::remove_all("sandbox"); }
可能的输出:
"sandbox/a" "sandbox/file1.txt" "sandbox/file2.txt"
缺陷报告
以下行为变更缺陷报告被追溯应用于先前发布的C++标准。
| 缺陷报告 | 适用范围 | 发布时行为 | 正确行为 |
|---|---|---|---|
| LWG 3480 | C++17 |
end
通过引用接收参数
|
通过值接收参数 |
参见
|
基于范围的 for 循环支持
(函数) |