Можете ли вы архивировать новую библиотеку диапазонов? - PullRequest
0 голосов
/ 15 февраля 2019

См .: http://eel.is/c++draft/#ranges

Учитывая два диапазона C ++ 2a (как в объектах, которые соответствуют концепции диапазонов библиотеки диапазонов) a и b, равной длины, есть ли способ сжатьих вместе так, что:

for (const auto& [a,b] : zip(a,b))

делает то, что вы ожидаете?То есть он возвращает диапазон, в котором есть что-то разрушаемое связывающими парами:

(a.begin(), b.begin())
(a.begin()+1, b.begin()+1)
(a.begin()+2, b.begin()+2)
...
(a.end()-1, b.end()-1)

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

range v3 niebler уже опубликовал библиотеку с отложенным zip-файлом и некоторыми более общими формами, а также zip_view и другими.Реализована как библиотека только для заголовков, чтобы вы могли читать код.С некоторыми хорошими примерами использования.В c ++ zip, вероятно, вернет кортеж, когда его спросят.и индексирование в этот кортеж даст вам значения.

0 голосов
/ 16 февраля 2019

Как видите, в C ++ 20 (на момент написания этой статьи) в настоящее время нет zip_view.

Он предлагается в P1035R4 (вместе с горсткойдругих адаптеров), предыдущая версия которого была положительно воспринята в Сан-Диего и, похоже, имеет весьма разумные шансы на посадку в C ++ 20.Есть открытые вопросы относительно ссылок прокси, но я не думаю, что это конкретно для zip.

...