0

我将如何完成以下任务?

列表 A 是一系列Foos,列表 B 是一系列doubles,表示直到移除列表 A 的第 th 位置的剩余Foo时间i。也就是说,如果列表 B 中的双精度数小于零,则列表 A 中与列表 B 中小于零的Foo双精度数相同的位置从列表 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_ifList B 的内容,但是如果我这样做,我将如何删除 List A 的项目?可悲的是,不同列表的迭代器不兼容,并且除了使用手动实现之外,没有办法遍历列表并知道每个值的索引。

4

1 回答 1

4

您可能需要考虑使用结构列表而不是两个列表。然后你可以使用 remove_if 和其他列表函数。

于 2013-04-21T06:13:01.193 回答