Нужно изнутри std алгоритма получить текущий индекс в коллекции или итератор текущего элемента, то можно как-нибудь сделать?
Например, в std::generate_n нужно знать какой элемент сейчас генерируется
Скажите, как при умножении двух чисел
n = a * b;
знать, какие разряды сейчас умножаются?
Я к тому, что у вас есть строка до выполнения действия и строка после. Что вы хотите узнать? "Сейчас" - выполняется то или иное действие.
Вы можете влезть в тот же generate_n и добавить свой код, который будет получать эту текущую позицию (как - второй вопрос). Но пока это библиотечная функция, в код которой вы не лезете - что означает текущий индекс? В какой именно момент? С точки зрения вашего кода это - атомарное действие.
Если используемый алгоритм гарантирует однократность вызова функционального объекта (и отсутствие копирований оного), переданного в него, то можно получить номер итерации в коде этого функционального объекта. На примере упомянутого generate_n:
#include <algorithm>
#include <iostream>
int main()
{
const int n = 10;
int arr[n];
std::generate_n(arr, n,
[]()
{
static int i = 0; std::cout << i++ << "\n"; return i;
});
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости