私は2つのベクトルを持っています:
vector1 = [1 2 3 4 5 6 7 8 9]
vector2 = [1 2 3 4 5 6 7 8 9]
random_shuffleを使用して両方をシャッフルするときに、同じ対応する順序でシャッフルする必要があることを確認したいと思います。例えば:
シャッフル後の出力は次のようになります。
vector1 = [1 9 3 4 2 7 8 5 6]
vector2 = [1 9 3 4 2 7 8 5 6]
しかし、私は次のような出力を得ています:
vector1 = [5 1 7 4 2 3 9 8 6]
vector2 = [3 4 1 9 8 2 5 7 6]
私のコードは次のとおりです。
int main ()
{
std::srand ( unsigned ( std::time(0) ) );
std::vector<int> vector1, vector2;
// set some values:
for (int i=1; i<10; ++i)
{
vector1.push_back(i);
vector2.push_back(i);
}
// using built-in random generator:
std::random_shuffle ( vector1.begin(), vector1.end() );
std::random_shuffle ( vector2.begin(), vector2.end() );
// print out content:
std::cout << "vector1 contains:";
for ( std::vector<int>::iterator it1 = vector1.begin(); it1 != vector1.end(); ++it1 )
std::cout << ' ' << *it1;
std::cout << '\n';
std::cout << '\n';
std::cout << "vector2 contains:";
for ( std::vector<int>::iterator it2 = vector2.begin(); it2 != vector2.end(); ++it2 )
std::cout << ' ' << *it2;
std::cout << '\n';
std::cout << '\n';
return 0;
}
EDITこれは、私が実装しようとした例です。実際には、画像の 1 つのベクトルと対応するラベルの 1 つのベクトルがあります。同じようにシャッフルする必要があります。どなたか助けてください……どうもありがとうございました!!