Namespaces
Variants

std::filesystem::path:: begin, std::filesystem::path:: end

From cppreference.net
iterator begin ( ) const ;
(1) (C++17以降)
iterator end ( ) const ;
(2) (C++17以降)
1) パスの最初の要素へのイテレータを返します。パスが空の場合、返されるイテレータは end() と等しくなります。
2) パスの最後の要素の1つ先を指すイテレータを返します。このイテレータをデリファレンスする動作は未定義です。

このイテレータのペアによって示されるシーケンスは以下の要素で構成されます:

  1. root-name (存在する場合)。
  2. root-directory (存在する場合)。
  3. ディレクトリ区切りを省略した file-name のシーケンス。
  4. パス内の最後の file-name の後にディレクトリ区切りが存在する場合、終端イテレータの前の最後の要素は空要素となります。

目次

翻訳内容: - 「Contents」→「目次」 - C++関連の専門用語(Parameters、Return value、Exceptions、Example)は原文のまま保持 - HTMLタグ、属性、構造は完全に保持 - 番号付けや書式は変更なし

パラメータ

(なし)

戻り値

1) パスの最初の要素へのイテレータ。
2) パスの終端を過ぎたイテレータ

例外

実装定義の例外をスローする可能性があります。

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    const fs::path p = 
#   ifdef _WIN32
        "C:\\users\\abcdef\\AppData\\Local\\Temp\\";
#   else
        "/home/user/.config/Cppcheck/Cppcheck-GUI.conf";
#   endif
    std::cout << "Examining the path " << p << " through iterators gives\n";
    for (auto it = p.begin(); it != p.end(); ++it)
        std::cout << *it << " │ ";
    std::cout << '\n';
}

出力例:

--- Windows ---
Examining the path "C:\users\abcdef\AppData\Local\Temp\" through iterators gives
"C:" │ "/" │ "users" │ "abcdef" │ "AppData" │ "Local" │ "Temp" │ "" │
--- UNIX ---
Examining the path "/home/user/.config/Cppcheck/Cppcheck-GUI.conf" through iterators gives
"/" │ "home" │ "user" │ ".config" │ "Cppcheck" │ "Cppcheck-GUI.conf" │