std::experimental::filesystem::path:: compare
From cppreference.net
<
cpp
|
experimental
|
fs
|
path
|
int
compare
(
const
path
&
p
)
const
noexcept
;
|
(1) | (파일시스템 TS) |
|
int
compare
(
const
string_type
&
str
)
const
;
|
(2) | (파일시스템 TS) |
|
int
compare
(
const
value_type
*
s
)
const
;
|
(3) | (파일시스템 TS) |
경로의 어휘 표현과 다른 경로를 비교합니다.
1)
경로의 네이티브 표현(
native
())이
p
의 네이티브 표현(
p.
native
(
)
)보다 각각 사전 순서로 작거나, 같거나, 큰 경우
0
보다 작거나, 같거나, 큰 값을 반환합니다. 비교는 요소별로 수행되며, 양쪽 경로를
begin
()부터
end
()까지 순회하는 것처럼 수행됩니다.
2)
다음에 해당함
compare
(
path
(
str
)
)
.
3)
다음에 해당함
compare
(
path
(
s
)
)
.
목차 |
매개변수
| p | - | 비교할 경로 |
| str | - | 비교할 경로를 나타내는 문자열 |
| s | - | 비교할 경로를 나타내는 널 종료 문자열 |
반환값
경로가 주어진 경로보다 사전순으로 작을 경우 0 보다 작은 값.
주어진 경로와 사전식으로 동일한 경우 0 과 같은 값을 반환합니다.
경로가 주어진 경로보다 사전순으로 더 클 경우 0 보다 큰 값.
예외
2,3)
구현에서 정의된 예외를 발생시킬 수 있습니다.
참고 사항
양방향 비교의 경우, 이항 연산자 가 더 적합할 수 있습니다.
예제
이 코드 실행
#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/_"); }
출력:
"/a/b/" > "/a/b/#" "/a/b/" < "a/b/_"
참고 항목
|
두 경로를 사전식으로 비교합니다
(함수) |