Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::experimental::filesystem::path::compare

      From cppreference.com
      <cpp‎ |experimental‎ |fs‎ |path
       
       
       
      Filesystem library
      Classes
      Functions
      File types
       
      path
      Member functions
      Path decomposition
      Non-member functions
       
      int compare(const path& p)constnoexcept;
      (1)(filesystem TS)
      int compare(const string_type& str)const;
      (2)(filesystem TS)
      int compare(const value_type* s)const;
      (3)(filesystem TS)

      Compares the lexical representations of the path and another path.

      1) Returns a value less than, equal to or greater than0 if the native representation of the path (native()) is respectively lexicographically less than, equal to or greater than the native representation ofp (p.native()). Comparison is performed element-wise, as if by iterating both paths frombegin() toend().
      2) Equivalent tocompare(path(str)).
      3) Equivalent tocompare(path(s)).

      Contents

      [edit]Parameters

      p - a path to compare to
      str - a string representing path to compare to
      s - a null-terminated string representing path to compare to

      [edit]Return value

      A value less than0 if the path is lexicographically less than the given path.

      A value equal to0 if the path is lexicographically equal to the given path.

      A value greater than0 if the path is lexicographically greater than the given path.

      [edit]Exceptions

      2,3) May throw implementation-defined exceptions.

      [edit]Notes

      For two-way comparisons,binary operators may be more suitable.

      [edit]Example

      Run this code
      #include <experimental/filesystem>#include <iostream>namespace fs= std::experimental::filesystem; void demo(int rc, fs::path p1, fs::path p2){if(rc<0)std::cout<< p1<<" < "<< p2<<'\n';elseif(rc>0)std::cout<< p1<<" > "<< p2<<'\n';elseif(rc==0)std::cout<< p1<<" = "<< p2<<'\n';} int main(){    fs::path p1="/a/b/";// as if "a/b/." for lexicographical iteration    fs::path p2="/a/b/#";    demo(p1.compare(p2), p1, p2);    demo(p1.compare("a/b/_"), p1,"a/b/_");}

      Output:

      "/a/b/" > "/a/b/#""/a/b/" < "a/b/_"

      [edit]See also

      lexicographically compares two paths
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/experimental/fs/path/compare&oldid=157721"

      [8]ページ先頭

      ©2009-2026 Movatter.jp