Эквивалентный образец генератора C ++ для Python

У меня есть пример кода Python, который мне нужно имитировать в C ++. Мне не требуется никакого конкретного решения (например, решения для доходности, основанного на рутине, хотя они также были бы приемлемыми ответами), мне просто нужно воспроизвести семантику каким-то образом.

питон

Это базовый генератор последовательности, явно слишком большой для хранения материализованной версии.

def pair_sequence():
    for i in range(2**32):
        for j in range(2**32):
            yield (i, j)

Цель состоит в том, чтобы сохранить два экземпляра последовательности, описанной выше, и выполнить итерацию по ним в полусвале, но порциями. В приведенном ниже примереfirst_pass использует последовательность пар для инициализации буфера, аsecond_pass восстанавливаетта же самая точная последовательность и снова обрабатывает буфер.

def run():
    seq1 = pair_sequence()
    seq2 = pair_sequence()

    buffer = [0] * 1000
    first_pass(seq1, buffer)
    second_pass(seq2, buffer)
    ... repeat ...
C ++

Единственное, что я могу найти для решения в C ++, это подражатьyield с сопрограммами C ++, но я не нашел хорошей ссылки о том, как это сделать. Я также заинтересован в альтернативных (не общих) решениях этой проблемы. Мне не хватает бюджета памяти, чтобы сохранить копию последовательности между проходами.

Ответы на вопрос(11)

Ваш ответ на вопрос