嘿傢伙我試圖洗牌我的動態數組的內容,它不工作。即時通訊想知道如果有任何建議或鏈接/資源,可以幫助我。我正在嘗試使用std :: randomshuffle,但我的測試正在吐出0而不是正確的數據。c + +洗牌動態數組的內容?
Songs *ptr;
ptr = new Songs[25];
ifstream fin;
fin.open("input.txt");
while (fin.good()) //my input
{
getline(fin, song[num].title);
getline(fin, song[num].artist);
fin >> song[num].mem;
num++;
fin>>ws;
}
fin.close();
和我的繼承人功能我嘗試使用randomshuffle
void shuffle (char choice, Songs song[], Songs *ptr, string title, string artist, int mem, int num)
{
if (choice == '4')
{
std::random_shuffle(ptr, ptr + num); //shuffle
}
for (int i = 0; i<num; i++) //test
{
cout << ptr[i].title << ptr[i].artist << ptr[i].mem << endl;
}
}
爲什麼所有的參數'shuffle()'函數?你只使用'ptr'和'num'。而邏輯是否洗牌也不應該在洗牌功能中完成。 – jrok 2012-03-02 00:09:13
以及那些是我的ptr數組的內容,所以我想我不得不包括那些以及 – gamergirl22 2012-03-02 00:17:28
@ gamergirl22絕對不需要,不應該這樣做。之後,你必須考慮如何有效地設計代碼:這個洗牌功能的重點在於將歌曲洗牌並打印出來。所以我們需要的是歌曲和歌曲(不是'歌曲'和'ptr')也是多餘的。 – stinky472 2012-03-02 00:22:24