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;
- }
-
-