ranges::equal
ranges::equal (두 범위 동등 검사)
두 범위의 원소가 모두 같은지 검사하는 ranges 버전 알고리즘이에요. <algorithm> 헤더에 있어요.
출처: cppreference
본문
std::ranges::equal은 두 범위의 요소가 전부 같은지 검사해요.
namespace std::ranges {
template< std::input_iterator I1, std::sentinel_for<I1> S1,
std::input_iterator I2, std::sentinel_for<I2> S2,
class Pred = ranges::equal_to,
class Proj1 = std::identity, class Proj2 = std::identity >
constexpr bool equal( I1 first1, S1 last1, I2 first2, S2 last2,
Pred pred = {}, Proj1 proj1 = {}, Proj2 proj2 = {} );
}
- 두 범위의 길이가 다르면
false. - 각 대응 원소가
pred(기본equal_to)로 같으면true. proj1/proj2로 두 범위를 다르게 투영해 비교할 수도 있어요.
std::vector<int> a{1, 2, 3};
std::array<int, 3> b{1, 2, 3};
bool same = std::ranges::equal(a, b); // true
두 범위를 한 번에 비교하는 간결한 함수예요. 끝이 지정된 두 범위를 받으므로 길이까지 검사돼요.