направлениях и чтобы избежать дублирования кода, оформил через begin, rbegin, но вот если объявить vector<...>::iterator start изначально, то его нельзя переделать в ревёрснутый. Как это можно обойти?
https://godbolt.org/z/x84Kbr
Строчка 22
start = next(points.rbegin()).base(); только то ли оно делает в коде - не знаю
Вроде оно, спасибо!
но по уму, мне кажется, проще сделать template<typename Iterator> void some_func(Iterator begin, Iterator end){ auto start = next(begin); ....... } int main() { vector<cv::Point2d> points = { cv::Point2d{1,1}, cv::Point2d{2,2}, cv::Point2d{3,2} }; some_func(points.begin(), points.end()); some_func(points.rbegin(), points.rend()); ..... }
там и без темплейта можно наверно обойтись
и что? а можно и с темплейтом.
Обсуждают сегодня