次のことをどのように達成しますか?
リスト A は一連の です
Foo
。リスト B は、リスト Aの番目の位置にある が削除されるdouble
までの残り時間を表す一連の です。つまり、リスト B の double がゼロ未満の場合、リスト A でリスト B のゼロ未満の double と同じ位置にあるものはリスト A から削除され、ゼロ未満の double はリスト B から削除されます。 .Foo
i
Foo
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
リスト Bの行に沿って何かを考えてstd::remove_if
いますが、リスト A のアイテムを削除するにはどうすればよいですか? 悲しいことに、異なるリストの反復子には互換性がなく、手動で実装する以外に、リストを反復処理して各値のインデックスを知る方法はありません。