there is an std::equal for it