怎么打乱vector里面的数据
时间: 2023-09-09 08:01:56 浏览: 143
要打乱一个vector中的数据,可以使用随机数生成器和洗牌算法。下面是一个简单的实现过程:
1. 引入头文件 `<vector>` 和 `<algorithm>` 以及 `<random>`。
2. 创建一个vector,并给它赋初值。
3. 使用 `std::random_device` 生成一个随机的种子。
4. 使用 `std::mt19937` 引擎和先前生成的种子初始化一个随机数生成器。
5. 使用 `std::shuffle` 函数将vector中的数据打乱,传入vector的开始和结束迭代器,以及随机数生成器。
下面是一个示例代码:
```cpp
#include <vector>
#include <algorithm>
#include <random>
int main() {
std::vector<int> data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
std::random_device rd;
std::mt19937 rng(rd());
std::shuffle(data.begin(), data.end(), rng);
// 输出打乱后的vector
for (int i : data) {
std::cout << i << " ";
}
return 0;
}
```
运行上述代码,会输出一个打乱后的vector中的数据,例如可能的输出为:5 9 3 1 2 8 6 10 7 4。
以上就是用于打乱一个vector中数据的简单实现方法。
阅读全文