在C++中,可以通過自定義比較函數來實現shuffle的穩定性。可以使用自定義的比較函數來保證元素的相對順序不變。以下是一個示例代碼:
#include <iostream>
#include <algorithm>
#include <vector>
bool custom_compare(int a, int b) {
return a < b; // 自定義比較函數,可以根據需要修改
}
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::stable_sort(vec.begin(), vec.end(), custom_compare); // 使用穩定的排序算法
std::random_shuffle(vec.begin(), vec.end()); // 隨機打亂元素
for (int i : vec) {
std::cout << i << " ";
}
return 0;
}
在這個示例中,我們使用了std::stable_sort
來對元素進行穩定排序,然后再使用std::random_shuffle
來打亂元素的順序。通過使用自定義的比較函數,我們可以保證元素的相對順序在打亂后不會改變。