我很好奇如何std:next_permutation被实现,所以我提取了gnu libstdc++ 4.7版本,并消毒标识符和格式,以产生以下演示… #include <vector> #include <iostream> #include <algorithm> using namespace std; template<typename It> bool next_permutation(It begin, It end) { if (begin == end) return false; It i = begin; ++i; if (i == end) return false; i = end; –i; while (true) { It j = i; –i; if (*i < *j) { It […]