c++ - STL 中 next_permutation 的 Python 实现

标签 c++ python stl iterator

next_permutation 是一个 C++ 函数,它按字典顺序给出字符串的下一个排列。有关其实现的详细信息可以从这篇非常棒的帖子中获得。 http://wordaligned.org/articles/next-permutation

  1. 有人知道 Python 中的类似实现吗?
  2. STL 迭代器是否有直接的 Python 等价物?

最佳答案

  1. itertools.permutations很近;最大的区别是它将所有项目视为唯一而不是比较它们。它也不会就地修改序列。在 Python 中实现 std::next_permutation 对您来说可能是一个很好的练习(在列表上使用索引而不是随机访问迭代器)。

  2. 没有。 Python 迭代器与输入迭代器相当,后者属于 STL 类别,但只是冰山一角。您必须改用其他结构,例如输出迭代器的可调用结构。这打破了 C++ 迭代器良好的语法通用性。

关于c++ - STL 中 next_permutation 的 Python 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4223349/

相关文章:

c++ - 如何关闭IStream?

c++ - STL模板的特化

c++ - 对角排列数组

c++ - 在被调用函数中更改函数指针(std::function)是否安全?

python - setText() 在 Python 中不起作用

c++ - gcc std::unordered_map 实现速度慢吗?如果是这样 - 为什么?

python - 使用 pandas groupby + apply 和 condensing groups 计算平均值的更快方法

python - 如何在同一项目中同时使用 3.2 和 2.7 Python 解释器运行代码?

c++ - vector::at 与 vector::operator[]

c++ - 如何使用 std::sort 对数组中的特定对象进行排序?