如何在不遍历数组的情况下对数组中的每个元素调用方法?

xvlaze

我正在编写一个小程序,其中包含 25 个点的数组。每个点都有自己的位置、大小和颜色,因为我使用的是图形库 (Allegro),所以我有一种方法可以将它们打印在屏幕上。

我需要同时打印它们,并使用:

    for (int i = 0; i < m_size ; i++)
    {
        points[i].move();
        points[i].draw();
    }

一个接一个地打印它们。绝对更好的是:

    for (int i = 0; i < m_size ; i++)
    {
        points[0].move();
        points[0].draw();
        points[1].move();
        points[1].draw();

        // ...

        points[24].move();
        points[24].draw();
    }

这当然不是最佳解决方案;但效果很好。问题是,有没有办法将第二个选项减少到更少的行数?

编辑:

void Particula::move(){
// Modifies private position attributes.
    m_x += rand() % 50;
    m_y += rand() % 50;
}

void Particula::draw(){
// Draws the point given its private attributes.
    printf("Drawing circle... \n");
    // printf ("[ DEBUG:] X: %f, Y: %f, Radius: %f", m_x, m_y, m_radius);

    al_draw_filled_circle(m_x, m_y, m_radius, m_color); // Draws the point.
    al_flip_display(); // Updates the display.
}

预期的结果是:

  1. 点一个接一个地出现。
  2. 绘制完所有 25 个点后,清除显示。
  3. 修改属性以设置新坐标。
  4. 同时重绘所有点(或使它们出现在屏幕上)。
  5. 重复不同的次数(可能是 100 或 500)。
xvlaze

像这样修改代码可以解决问题:

for(int i = 0; i < N; i++) // being N a variable number.
{
    for (int h = 0; h < m_size; h++)
    {
        point[h].move();
        point[h].draw();
    }
    al_flip_display();
    al_clear_to_color(al_map_rgb(0,0,0));
    al_rest(0.1);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不知道 C# 中的底层类型的情况下遍历数组

来自分类Dev

是否可以在不遍历数组的情况下选择某些元素?

来自分类Dev

如何在不更新ReactJs中数组的每个列表的情况下更新数组列表中单个项目的状态

来自分类Dev

如何在不丢失元素的情况下遍历列表

来自分类Dev

如何在不增加OverflowError:Python int太大而无法转换为C long的情况下,将数组中的每个元素与大量相乘?

来自分类Dev

如何在不循环整个数组的情况下从二维数组中获取元素?

来自分类Dev

如何在不遍历状态的情况下访问减速器中的 redux 状态数组属性

来自分类Dev

如何在不插入PHP的每个循环的情况下将数组插入数据库

来自分类Dev

如何在MIPS中遍历数组?

来自分类Dev

如何在mongodb中遍历数组?

来自分类Dev

如何在不丢失结果的情况下两次调用php数组?

来自分类Dev

在以下情况下如何从每个数组元素中删除\'?

来自分类Dev

在不更改索引的情况下对数组元素进行操作

来自分类Dev

如何在不排序的情况下从对象输出数组

来自分类Dev

如何遍历数组并为每个函数调用函数?

来自分类Dev

如何在不影响原始数组元素的情况下更改ArrayList中的元素?

来自分类Dev

如何在没有循环的情况下向Javascript数组中的每个对象添加字段?

来自分类Dev

如何在不链接/ jquery的情况下使用方法应用css属性数组

来自分类Dev

如何在不包含O(n)^ 3的情况下遍历包含2D数组的对象?

来自分类Dev

如何在PHP中遍历JSON数组中的每个元素

来自分类Dev

如何在不使用内置函数的情况下从python中的数组中删除元素

来自分类Dev

如何在不将每个索引应用于每一行的情况下遍历数据帧中的每一行?

来自分类Dev

如何在不将每个索引应用于每一行的情况下遍历数据帧中的每一行?

来自分类Dev

如何在不循环的情况下访问对象数组中的所有键和值

来自分类Dev

如何在不更改原始的情况下修改/更新numpy中的数组

来自分类Dev

如何在不排序的情况下找到数组中的最小数字?

来自分类Dev

如何在不循环的情况下从函数参数中指定的json数组中获取密钥?

来自分类Dev

如何在Java中不初始化的情况下使用数组

来自分类Dev

如何在不进行迭代的情况下从数组中访问特定元素?

Related 相关文章

  1. 1

    如何在不知道 C# 中的底层类型的情况下遍历数组

  2. 2

    是否可以在不遍历数组的情况下选择某些元素?

  3. 3

    如何在不更新ReactJs中数组的每个列表的情况下更新数组列表中单个项目的状态

  4. 4

    如何在不丢失元素的情况下遍历列表

  5. 5

    如何在不增加OverflowError:Python int太大而无法转换为C long的情况下,将数组中的每个元素与大量相乘?

  6. 6

    如何在不循环整个数组的情况下从二维数组中获取元素?

  7. 7

    如何在不遍历状态的情况下访问减速器中的 redux 状态数组属性

  8. 8

    如何在不插入PHP的每个循环的情况下将数组插入数据库

  9. 9

    如何在MIPS中遍历数组?

  10. 10

    如何在mongodb中遍历数组?

  11. 11

    如何在不丢失结果的情况下两次调用php数组?

  12. 12

    在以下情况下如何从每个数组元素中删除\'?

  13. 13

    在不更改索引的情况下对数组元素进行操作

  14. 14

    如何在不排序的情况下从对象输出数组

  15. 15

    如何遍历数组并为每个函数调用函数?

  16. 16

    如何在不影响原始数组元素的情况下更改ArrayList中的元素?

  17. 17

    如何在没有循环的情况下向Javascript数组中的每个对象添加字段?

  18. 18

    如何在不链接/ jquery的情况下使用方法应用css属性数组

  19. 19

    如何在不包含O(n)^ 3的情况下遍历包含2D数组的对象?

  20. 20

    如何在PHP中遍历JSON数组中的每个元素

  21. 21

    如何在不使用内置函数的情况下从python中的数组中删除元素

  22. 22

    如何在不将每个索引应用于每一行的情况下遍历数据帧中的每一行?

  23. 23

    如何在不将每个索引应用于每一行的情况下遍历数据帧中的每一行?

  24. 24

    如何在不循环的情况下访问对象数组中的所有键和值

  25. 25

    如何在不更改原始的情况下修改/更新numpy中的数组

  26. 26

    如何在不排序的情况下找到数组中的最小数字?

  27. 27

    如何在不循环的情况下从函数参数中指定的json数组中获取密钥?

  28. 28

    如何在Java中不初始化的情况下使用数组

  29. 29

    如何在不进行迭代的情况下从数组中访问特定元素?

热门标签

归档