- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
嘿伙计们,我正在尝试随机排列我的动态数组的内容,但它不起作用。我想知道你们是否有任何可以帮助我的建议或链接/资源。我正在尝试使用 std::randomshuffle 但我的测试吐出 0 而不是正确的数据。
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;
}
}
最佳答案
切勿使用 istream::good()
或 istream::eof()
作为循环条件。它几乎总是会产生错误代码(就像在本例中一样。)
尝试:
while (std::getline(fin, song[num].title) &&
std::getline(fin, song[num].artist) &&
fin >> song[num].mem)
{
num++;
fin>>ws;
}
正如 stinky 指出的那样,您的洗牌是正确的,尽管风格很糟糕。尝试:
void shuffle (char choice, Songs *ptr, int num)
{
if (choice == '4')
{
std::random_shuffle(ptr, ptr + num); //shuffle
}
for (int i = 0; i<num; i++) //test
{
std::cout << ptr[i].title << ptr[i].artist << ptr[i].mem << "\n";
}
}
关于c++改组动态数组的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9526141/
我有以下字符串到 json 代码: json = new JSONObject( "{\"Questions\":{"
我在 C++ 中有一个包含 20 个整数的数组,我想打乱它们(随机顺序)。 我还想以这样的方式对它们进行排序,即前 10 个数字按升序排列最小,其余的只是随机的。 有没有办法自动执行此操作? 最佳答案
我正在尝试在 Java 上实现 Fisher-Yates 洗牌算法。它可以工作,但是当我的 ArrayList 的大小大于 100000 时,它会变得非常慢。我将向您展示我的代码,您是否看到任何优化代
有问题的代码: random_items = random.shuffle(Item.query.all())[20:30] 它在 Flask/SQLAlchemy 应用程序中。Item 是模型。
我目前正在尝试找到一种方法来按行随机化数据框中的项目。我在 pandas ( shuffling/permutating a DataFrame in pandas ) 中发现了这个关于 shuffl
在 pandas 中按行或按列对数据帧进行洗牌的简单而有效的方法是什么? IE。如何编写函数shuffle(df, n, axis=0)这需要一个数据帧,许多洗牌n , 和一个轴(axis=0 是行,
我刚开始接触 Objective-C,我正在尝试对数组进行排序,以使其差异尽可能小。 int main() { NSAutoreleasePool * pool = [[NSAutorelea
我正在使用此代码使用 Fisher-Yates 随机化算法的变体生成 vector 的随机排列(我从第一个元素到最后一个元素,而不是相反)。我在一个程序中全局使用 boost::random::mt1
哪些 SSE/AVX 指令将 channel 从 a 打乱为 b 和 c? float4 a = {data[0], data[1], data[2], data[3]}; float4 b = {d
15 个中!数字 1-15 的可能排列,我需要选择 10!他们是随机的。 不幸的是,虽然 this answer 中的方法如果我迭代前 10 个排列,可以避免存储所有排列并对其进行洗牌时遇到的内存不足
我是一名优秀的程序员,十分优秀!