Namespaces
Variants

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

From cppreference.net
int compare ( const path & p ) const noexcept ;
(1) (Filesystem TS)
int compare ( const string_type & str ) const ;
(2) (Filesystem TS)
int compare ( const value_type * s ) const ;
(3) (Filesystem TS)

Vergleicht die lexikalischen Darstellungen des Pfads und eines anderen Pfads.

1) Gibt einen Wert kleiner, gleich oder größer als 0 zurück, falls die native Darstellung des Pfades ( native ()) lexikographisch kleiner, gleich oder größer als die native Darstellung von p ( p. native ( ) ) ist. Der Vergleich wird elementeweise durchgeführt, als würde man beide Pfade von begin () bis end () durchlaufen.
2) Entspricht compare ( path ( str ) ) .
3) Entspricht compare ( path ( s ) ) .

Inhaltsverzeichnis

Parameter

p - ein Pfad zum Vergleich
str - ein String, der einen Pfad zum Vergleich darstellt
s - ein nullterminierter String, der einen Pfad zum Vergleich darstellt

Rückgabewert

Ein Wert kleiner als 0 wenn der Pfad lexikografisch kleiner als der angegebene Pfad ist.

Ein Wert gleich 0 wenn der Pfad lexikografisch gleich dem angegebenen Pfad ist.

Ein Wert größer als 0 wenn der Pfad lexikografisch größer als der angegebene Pfad ist.

Exceptions

2,3) Kann implementierungsdefinierte Ausnahmen werfen.

Hinweise

Für Zwei-Wege-Vergleiche können binäre Operatoren besser geeignet sein.

Beispiel

#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';
    else if (rc > 0)
        std::cout << p1 << " > " << p2 << '\n';
    else if (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/_");
}

Ausgabe:

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

Siehe auch

vergleicht zwei Pfade lexikographisch
(Funktion)