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。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有