小编gha*_*.st的帖子

迭代for循环的最佳方法,然后再向后迭代它?

我发现在编写动画时我有时会遇到一次for循环,然后再重复该值.这通常用于跳跃动画,或者消失然后再次出现动画.

这是我做过的一个例子 -

// Make the sprite slowly disappear
for (int i = 256; i > 0; --i)
{
    sprite.opacity(i);
    draw();
}

// Make the sprite slowly appear again
for (int i = 0; i < 256; ++i)
{
    sprite.opacity(i);
    draw();
}
Run Code Online (Sandbox Code Playgroud)

每次我这样做,我都深深感到它太过分了.什么是更好的方式来解决这个问题?我不完全确定什么是最佳做法.我想我可以使用reverse_iterator,但我也不确定如何实现它.

c++ iterator loops for-loop

3
推荐指数
1
解决办法
251
查看次数

变量名c ++之前的"::"

#include <iostream>

using namespace std;

int d = 10;

int main()
{
    int d = 20;

    {
        int d = 30;
        cout << d << endl << ::d; // what does it mean?
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

30
10

我不明白为什么" ::d"给10?有人可以向我解释一下吗?

c++ variables scope

2
推荐指数
1
解决办法
1298
查看次数

如何测试动态变量是否存在?

据我所知,动态变量在运行时被查找.我想使用它们来启用类似于球拍参数的参数化.

为此,我必须设置一个应该可以覆盖的默认值,但不一定是可更改的.我目前的方法相当简单:

my $*param ::= 42;
sub parameterized-function { say $*param };
parameterized-function();
do {
    my $*param ::= 15;
    parameterized-function();
}
Run Code Online (Sandbox Code Playgroud)

哪个工作正常 - 除了它在外部范围引入参数的名称.除了感觉不整洁之外,my $*param = 15;如果在文件级别上使用,这会产生导致混乱的副作用.

我想要做的是检查参数是否已在调用堆栈上定义,顺序如下:

sub parameterized-function { if defined($*param) { say 42 } else { say $*param } };
Run Code Online (Sandbox Code Playgroud)

那么,是否有可能进行这样的检查,如果是这样,它是如何完成的?

perl6 dynamic-scope

2
推荐指数
1
解决办法
199
查看次数

C++简单sizeof char数组和char指针之间的区别

char * test = "test";
cout << sizeof(test);


char test2[] = "test";
cout << sizeof(test2);
Run Code Online (Sandbox Code Playgroud)

在visual studio 2010上运行它,为什么输出45
不应该测试字符串文字,sizeof字符串文字是字符串文字中的字符元素数,包括终止空字符?

c++ string sizeof

0
推荐指数
1
解决办法
2512
查看次数

标签 统计

c++ ×3

dynamic-scope ×1

for-loop ×1

iterator ×1

loops ×1

perl6 ×1

scope ×1

sizeof ×1

string ×1

variables ×1