我将如何完成以下工作?
列表A是一系列的
Foos,列表B是一系列表示时间的doubles,直到列表A的i第四个位置的Foo被移除为止。也就是说,如果列表B中的双倍小于零,则从列表A中删除位于列表A中小于零双的Foo,从列表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我正在考虑一些类似于列表B的std::remove_if的东西,但是如果我这样做,我将如何删除列表A的项目呢?遗憾的是,不同列表的迭代器是不兼容的,并且,除了使用手动实现之外,没有方法可以遍历列表并知道每个值的索引。
发布于 2013-04-21 06:13:01
您可能想要考虑使用一个结构列表而不是两个列表。然后可以使用remove_if和其他列表函数。
https://stackoverflow.com/questions/16128464
复制相似问题