STL中的random_shuffle()方法的使用

来源:互联网 发布:台湾的新闻软件 编辑:程序博客网 时间:2024/04/30 09:35

STL中的函数random_shuffle()用来对一个元素序列进行重新排序(随机的),函数原型如下:

template<class RandomAccessIterator>   void random_shuffle(      RandomAccessIterator _First, //指向序列首元素的迭代器      RandomAccessIterator _Last  //指向序列最后一个元素的下一个位置的迭代器   );

例子:

#include "stdafx.h"#include <iostream>#include <vector>#include <algorithm>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ vector<string> str; str.push_back("hello"); str.push_back("world"); str.push_back("welcome"); str.push_back("to"); str.push_back("Beijing"); std::random_shuffle(str.begin(),str.end());//迭代器 for(int j = 0; j < str.size(); j++) { cout<<str[j].c_str()<<" "; } cout<<endl;     system("pause");return 0;}

random_shuffle还可以用于数组:

#include "stdafx.h"#include <iostream>#include <vector>#include <algorithm>using namespace std;int _tmain(int argc, _TCHAR* argv[]){char arr[] = {'a', 'b', 'c', 'd', 'e', 'f'}; std::random_shuffle(arr,arr+6);//迭代器 for(int j = 0; j < 6; j++) { cout<<arr[j]<<" "; } cout<<endl;     system("pause");return 0;}