std::experimental::filesystem::path:: compare
From cppreference.net
<
cpp
|
experimental
|
fs
|
path
|
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) |
Compare les représentations lexicales du chemin et d'un autre chemin.
1)
Retourne une valeur inférieure, égale ou supérieure à
0
si la représentation native du chemin (
native
()) est respectivement lexicographiquement inférieure, égale ou supérieure à la représentation native de
p
(
p.
native
(
)
). La comparaison est effectuée élément par élément, comme en itérant les deux chemins depuis
begin
() jusqu'à
end
().
2)
Équivalent à
compare
(
path
(
str
)
)
.
3)
Équivalent à
compare
(
path
(
s
)
)
.
Table des matières |
Paramètres
| p | - | un chemin à comparer |
| str | - | une chaîne représentant le chemin à comparer |
| s | - | une chaîne terminée par un caractère nul représentant le chemin à comparer |
Valeur de retour
Une valeur inférieure à 0 si le chemin est lexicographiquement inférieur au chemin donné.
Une valeur égale à 0 si le chemin est lexicographiquement égal au chemin donné.
Une valeur supérieure à 0 si le chemin est lexicographiquement supérieur au chemin donné.
Exceptions
2,3)
Peut lever des exceptions définies par l'implémentation.
Notes
Pour les comparaisons bidirectionnelles, les opérateurs binaires peuvent être plus appropriés.
Exemple
Exécuter ce 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'; 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/"; // comme "a/b/." pour l'itération lexicographique fs::path p2 = "/a/b/#"; demo(p1.compare(p2), p1, p2); demo(p1.compare("a/b/_"), p1, "a/b/_"); }
Sortie :
"/a/b/" > "/a/b/#" "/a/b/" < "a/b/_"
Voir aussi
|
compare lexicographiquement deux chemins
(fonction) |