Một thuật toán tiêu chuẩn đặc biệt hữu ích là std::equal
, được định nghĩa như sau:C++ STL thuật toán bằng
template <typename InputIterator1, typename InputIterator2>
inline bool equal(InputIterator1 start1,
InputIterator1 end1,
InputIterator2 start2)
{
while(start1 != end1)
{
if(*start1 != *start2) return false;
++start1;
++start2;
}
return true;
}
Thuật toán đi qua phạm vi xác định bởi [start1, end1)
và [start2, start2 + (end1 – start1))
và lợi nhuận cho dù các yếu tố trong phạm vi đều bình đẳng . Lưu ý rằng thuật toán được templatized trên hai loại khác nhau của vòng lặp đầu vào.
Tại sao điều này?
Để bạn có thể muốn so sánh nội dung từ các vùng chứa khác nhau, làm ví dụ. – skypjack