Здравствуйте, Нахлобуч, Вы писали:
Н>Сильно
Непонятно, что требуется. Что значит "как определить внутри алгоритма сколько точек записывать через выходной итератор в контейнер пользователь"? Параметр I разве не это указывает? А определение функции может выглядеть, например, так:
Н>Н>template <typename C>
Н>void gen_points(C &container, size_t num)
Н>{
Н> back_insert_iterator<C> i(back_inserter(container));
Н> for( ; num; --num, ++i)
Н> {
Н> *i = /* генерация точки */
Н> } // for
Н>}
Н>
черт.. есть 2а момента.
а) не совсем это то... Неохото указывать тип контейнера в шаблоне, т.к. тогда и back_insert_iterator впринципе не к месту будет — напрямую проще.
нельзя по такой же схеме, как все std алгоритмы (без ссылок на контейнер)?
и
б) а если мне надо не просто добавить в выходной контейнер, а после еще и поработать с ним (допустим сформировали vector с помощью back_insert_iterator, а затем работаем с этим вектором)