C++随机打乱vector
时间: 2024-10-01 16:01:40 浏览: 54
VC++中vector的使用方法及其元素随机
3星 · 编辑精心推荐
在C++中,如果你想随机打乱一个`std::vector`的内容,你可以使用标准库中的`<algorithm>`头文件提供的`shuffle`函数。这是一个例子:
```cpp
#include <iostream>
#include <random>
#include <algorithm>
void shuffle_vector(std::vector<int>& vec) {
// 首先,创建一个均匀分布的随机数生成器
std::default_random_engine generator;
// 使用当前时间作为种子,确保每次程序运行时结果不同
generator.seed(std::chrono::system_clock::now().time_since_epoch().count());
// 确定随机数范围,这里假设vec的元素是从0到vec.size() - 1
std::uniform_int_distribution<int> distribution(0, vec.size() - 1);
// 使用shuffle对vec进行随机排列
std::shuffle(vec.begin(), vec.end(), generator);
}
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};
shuffle_vector(numbers);
for (const auto& num : numbers) {
std::cout << num << " ";
}
return 0;
}
```
在这个示例中,`shuffle`会将向量`numbers`内的元素随机地交换位置。
阅读全文