Size: a a a

2020 September 08

A

Alex in pro.cxx
ЗАЧЕМ???
источник

CD

Constantine Drozdov in pro.cxx
Alex
ЗАЧЕМ???
что значит зачем
источник

A

Alex in pro.cxx
зачем ей это вычислять
источник

CD

Constantine Drozdov in pro.cxx
Alex
зачем ей это вычислять
если в count_if передать always true, она будет эквивалентном distance, так?
источник

A

Alex in pro.cxx
я бы так не сказал, ведь distance по своей логике может вернуть отрицательное число, а count_if по своей логике - нет
источник

AS

Alex Sandrov in pro.cxx
Constantine Drozdov
HASH1*coef*coef + HASH2*coef+HASH3
Спасибо!
источник

CD

Constantine Drozdov in pro.cxx
Alex
я бы так не сказал, ведь distance по своей логике может вернуть отрицательное число, а count_if по своей логике - нет
typename std::iterator_traits<It>::difference_type 
   do_distance(It first, It last, std::input_iterator_tag)
{
   typename std::iterator_traits<It>::difference_type result = 0;
   while (first != last) {
       ++first;
       ++result;
   }
   return result;
}
источник

CD

Constantine Drozdov in pro.cxx
вот и ответ
источник

CD

Constantine Drozdov in pro.cxx
template<class InputIt, class UnaryPredicate>
typename iterator_traits<InputIt>::difference_type
   count_if(InputIt first, InputIt last, UnaryPredicate p)
{
   typename iterator_traits<InputIt>::difference_type ret = 0;
   for (; first != last; ++first) {
       if (p(*first)) {
           ret++;
       }
   }
   return ret;
}
источник

CD

Constantine Drozdov in pro.cxx
сравните
источник

A

Alex in pro.cxx
число, которое начинается с нуля и только инкрементируется, не должно иметь знаковый тип
источник

CD

Constantine Drozdov in pro.cxx
Alex
число, которое начинается с нуля и только инкрементируется, не должно иметь знаковый тип
то есть std::distance должен вернуть size_t для InputIterator?
источник

A

Alex in pro.cxx
нет, ведь distance может вернуть отрицательное число
источник

CD

Constantine Drozdov in pro.cxx
Alex
нет, ведь distance может вернуть отрицательное число
я реализацию написал
источник

A

Alex in pro.cxx
у меня нет вопросов к реализации distance
источник

CD

Constantine Drozdov in pro.cxx
они подозрительно одинаковые
источник

A

Alex in pro.cxx
только к count_if
источник

CD

Constantine Drozdov in pro.cxx
Alex
у меня нет вопросов к реализации distance
но они одинаковые, а вы говорите, что они должны вернуть разное
источник

SE

Stanislav Ershov in pro.cxx
источник

A

Alex in pro.cxx
Stanislav Ershov
The number of increments needed to go from first to last. The value may be negative if random-access iterators are used and first is reachable from last (since C++11)
Вот же цитата. The value may be negative.
источник