为什么 std::partition 没有不合适的变体?

Why does std::partition not have an out-of-place variant?

std::partition is nifty, but it is in-place; and std::partition_copy 也不错,但是它需要两个输出迭代器,也就是说,如果你想使用同一个输出数组,你必须至少提前计算满足谓词的元素数量。为什么在 <algorithm> 中没有不合适的 std::partition 或单输出迭代器 std::partition_copy

大概是因为该功能已经可以通过以下方式实现:

  • 正在复制原始容器并就地使用 partition
  • 将单个目标容器调整为正确的大小,并使用 begin()rbegin() 迭代器从正面和背面用 partition_copy 填充它。