std::vector<double> data {44.5, 22.0, 15.6, 1.5}; do { std::copy(std::begin(data), std::end(data), std::ostream_iterator<double> {std::cout, " "}); std::cout << std::endl; } while(std::prev_permutation(std::begin(data), std::end(data)));这段代码会输出 data 中 4 个 double 值的全部 24 种排列,因为初始序列是最大排列,所以 prev_permutation() 会在输入最小排列时,才返回 false。
本文链接:http://task.lmcjl.com/news/15276.html