0
我將如何完成以下任務?Parallel std :: lists,根據列表B中的項目狀態刪除列表A中的項目?
列表A是一系列
Foo
S,列表B是一系列表示時間double
小號剩餘直到Foo
在列表A的第i
位置被除去。也就是說,如果列表B中的雙精度值小於零,則列表A中的列表A中的相同位置上的Foo
與列表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_if
對名單B線的東西,但我會如何刪除物品清單A,如果我這樣做嗎?可悲的是,不同列表的迭代器不兼容,除了使用手動實現外,無法遍歷列表並知道每個值的索引。
重構並使用單個'std :: list>'? (如果這是可能的話)保持同步的數據結構,比如你的兩個列表通常是頭疼的事情。 –
syam
2013-04-21 06:12:10