如何在C ++中随机播放std :: vector
可以在Fisher-Yates随机播放算法中完成矢量随机播放。
在此算法中,对向量进行线性扫描,然后在所有其余元素(包括元素本身)中将每个元素交换为随机元素。
算法
BeginDeclare a function show().
Pass a constructor of a vector as a parameter within show() function.
for (auto const& i: input)
Print the value of variable i.
Declare v of vector type.
Initialize some values into v vector in array pattern.
Declare a variable size of the integer datatype.
Call size() function to get the size of the vector.
Initialize size = v.size().
for (int i = 0; i < size - 1; i++)
int j = i + rand() % (size - i).
call swap() function to swap the values of v[i] and v[j].
print “Elements after getting shuffled”.
Call show() function to display the suffled value of v vector.
End.
范例程式码
#include <iostream>#include <vector>
#include <algorithm>
using namespace std;
void show(vector<int> const &input) {
for (auto const& i: input) {
std::cout << i << " ";
}
}
int main() {
vector<int> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int size = v.size();
for (int i = 0; i < size - 1; i++) {
int j = i + rand() % (size - i);
swap(v[i], v[j]);
}
cout<<"Elements after getting shuffled"<<endl;
show(v);
return 0;
}
输出结果
Elements after getting shuffled2 8 5 3 1 9 4 7 6
以上是 如何在C ++中随机播放std :: vector 的全部内容, 来源链接: utcz.com/z/330913.html