假设有一个整数数组:
A[]={2, 2, 9, 8, 5, 7, 0, 6}
还有一个模板:
B[]={1, 0, 0, 1, 1, 1, 0, 1}
我的问题是怎么样才能根据 B[] 重新排列 A[],使得如果 B[i]==1, B[j]==0,那么在新的数组中可以保证 A[i] 在 A[j] 之前,新数组应该长成这个样子:
C[]={2, 8, 5, 7, 6, 2, 9, 0}
PS:我发现“partition”函数几乎是答案,只是它只支持谓词。有什么解决方法吗?
非常感谢任何提示!
partition-with-stencil
是API中已知的漏洞:https://github.com/thrust/thrust/issues/49 - Jared Hoberock