vectorの要素をrandom_shuffleを使ってシャッフルしたいが、srand(time(0))とシードの設定をしてもシャッフルが毎回同じになってしまう
タイトルの通り、vectorの要素をシャッフルしたいのですが毎回同じになってしまい困っています。
どなたか間違いのご指摘お願いできないでしょうかm(_ _)m
-----動作環境-----
g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include- dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/De
veloper/SDKs/MacOSX10.12.sdk/usr/include/c++/4.2.1
Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin16.4.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
OS info
ProductName: Mac OS X
ProductVersion: 10.12.3
BuildVersion: 16D32
コンパイル方法
g++ test.cpp
test.cppの中身
#include <iostream>
#include <ctime> // time
#include <cstdlib> // rand
#include <vector>
#include <algorithm>
using namespace std;
int main(){
vector<int> v;
for(int i=1; i<=5; ++i) v.push_back(i);
cout << "vector before shuffling : ";
vector<int>::const_iterator iter;
for(iter=v.begin(); iter!=v.end(); ++iter) cout << *iter << ' ';
cout << endl << endl;
// shuffle vector
srand(time(0));
random_shuffle(v.begin(), v.end());
cout << "vector after shuffling : ";
for(iter=v.begin(); iter!=v.end(); ++iter) cout << *iter << ' ';
return 0;
}