Параллельный std :: lists, удаление элементов в списке A на основе состояния элементов в списке B?

Как бы я сделал следующее?

Список А представляет собой серию Foos, список B представляет собой серию doubles представляет время, оставшееся до Foo на iПозиция списка А удаляется. То есть, если двойное число в списке B меньше нуля, Foo в той же позиции в списке A, что двойное число меньше нуля в списке B удаляется из списка A, а двойное число меньше нуля удаляется из списка B.

List A:
A B C D E

List B (in seconds):
1.0 0.33 0.0 5.0 0.01

//1 tick of 0.33 seconds

List B:
0.67 0.0 -0.33 4.67 -0.32

//Remove offending List A elements based on state of List B
List A:
A B D

//Remove invalid List B elements
List B:
0.67 0.0 4.67

Я думаю что-то вроде std::remove_if для списка B, но как мне удалить элементы для списка A, если я это сделаю? К сожалению, итераторы разных списков несовместимы, и, кроме использования ручных реализаций, нет способа перебирать список и знать индекс каждого значения.

0

Решение

Вы можете рассмотреть возможность использования списка структур вместо двух списков. Затем вы можете использовать remove_if и другие функции списка.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]