相关疑难解决方法(0)

448
推荐指数
11
解决办法
10万
查看次数


循环中i ++和++ i之间的区别?

是否有差异++i,并i++在一个for循环?它只是一个语法的东西吗?

language-agnostic for-loop pre-increment post-increment

294
推荐指数
10
解决办法
28万
查看次数

'for'循环内的后递增和预递增产生相同的输出

以下for循环产生相同的结果,即使一个使用后增量和另一个预增量.

这是代码:

for(i=0; i<5; i++) {
    printf("%d", i);
}

for(i=0; i<5; ++i) {
    printf("%d", i);
}
Run Code Online (Sandbox Code Playgroud)

我为两个'for'循环得到了相同的输出.我错过了什么吗?

c c++ for-loop operator-precedence

188
推荐指数
6
解决办法
18万
查看次数

增加迭代器:++它比++更有效吗?

可能重复:
在C++中i ++和++ i之间是否存在性能差异?

我正在编写一个程序,其中迭代器用于循环std :: vector.有人告诉我,在for语句中执行++会导致更高效的代码.换句话说,他们说:

for ( vector<string>::iterator it=my_vector.begin(); it != my_vector.end(); ++it )
Run Code Online (Sandbox Code Playgroud)

比跑得快

for ( vector<string>::iterator it=my_vector.begin(); it != my_vector.end(); it++ )
Run Code Online (Sandbox Code Playgroud)

这是真的?如果是,效率提升背后的原因是什么?它所做的全部++/++是将迭代器移动到向量中的下一个项目,不是吗?

c++ iterator stl

29
推荐指数
4
解决办法
3万
查看次数


++ i和i ++之间的区别

可能的重复:
i ++或++ i的效率更高?
我们如何解释表达式的结果(++ x)+(++ x)+(++ x)?
循环中i ++和++ i之间的区别?

我正在尝试这两个程序:

void fun(){
     int k = 0;
     int i= 10;
     k = (i++)+(++i);
     cout << k << endl;
}
Run Code Online (Sandbox Code Playgroud)

输出= 22,因为i ++将给出10而++我将评估为12.

void fun(){
     int k = 0;
     int i = 10;
     k = (++i)+(++i);
     cout << k << endl;
}
Run Code Online (Sandbox Code Playgroud)

输出= 24

它应该是23我猜,还是有些东西我无法看到?

c++

5
推荐指数
2
解决办法
1499
查看次数

为什么i = i + 1比i ++快?

在Flash中测试此代码:

var i:int = 0;
for (var j:int = 0; j < 5000000; j++)
{
    i=i+1;
}// use about 300ms.

i = 0;
for (var j:int = 0; j < 5000000; j++)
{
    i++;
}// use about 400ms

i = 0;
for (var j:int = 0; j < 5000000; j++)
{
    ++i;
}// use about 400ms too
Run Code Online (Sandbox Code Playgroud)

为什么i=i+1ActionScript 3中的速度更慢?

对不起,我犯了一些错误.上面的代码使用的时间相同.但如果把它投入使用,结果会有所不同.

var i:int;
var j:int;
var startTime:Number;

function func1():void
{
    i = i + 1;
}

function func2():void
{ …
Run Code Online (Sandbox Code Playgroud)

performance actionscript-3 pre-increment post-increment

5
推荐指数
1
解决办法
4614
查看次数

c ++中汉明距离的更快形式(可能利用标准库)?

我有两个int vectors喜欢a[100],b[100].
计算汉明距离的简单方法是:

std::vector<int> a(100);
std::vector<int> b(100);

double dist = 0;    
for(int i = 0; i < 100; i++){
    if(a[i] != b[i])
        dist++;
}
dist /= a.size();
Run Code Online (Sandbox Code Playgroud)

我想问一下,有更快的方法在C++中进行此计算或如何使用STL执行相同的工作吗?

c++ algorithm optimization stl

4
推荐指数
2
解决办法
4092
查看次数

为什么`--var`和`var-1`的工作方式不同?

我写了一个代码来打印所有有效的n对括号组合.但是,在我第一次尝试时,算法输出所有组合两次,即.代码是:

public static void solve(char[] string, int open, int closed, int index)
{
    if (open < 0 || closed < open) {
        return;
    }

    if (open == 0 && closed == 0) {
        System.out.println(string);
    }

    if (open > 0) {
        string[index] = '(';
        solve(string, --open, closed, ++index);
    }

    if (closed > open) {
        string[index] = ')';
        solve(string, open, --closed, ++index);
    }
}
Run Code Online (Sandbox Code Playgroud)

我花了很多时间才能看出出了什么问题.我认为代码进入最后一个if分支比它应该更多.然后,在尝试不同的事情时,我意识到了变化

solve(string, --open, closed, ++index);
Run Code Online (Sandbox Code Playgroud)

solve(string, open-1, closed, ++index);
Run Code Online (Sandbox Code Playgroud)

改变了结果.这导致了一个java.lang.ArrayIndexOutOfBoundsException.最后,我用相应的算术运算(例如,++indexto index+1)替换了所有预增量操作,并且代码正确运行.

我的问题是,不应该 …

java pre-increment

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

C++中的前后递增/递减运算符在循环中是否具有相同的性能?

考虑以下两个例子.

class ClassOne
{
 //class definition is here
};

std::vector< ClassOne > myListOfObjects;

std::vector< ClassOne >::const_iterator iter = myListOfObjects.begin();

Example 1: 
for( ; iter < myListOfObjects.end(); **++iter**)
{
   //some operations
}

OR

Example 2: 
for( ; iter < myListOfObjects.end(); **iter++**)
{
   //some operations
}
Run Code Online (Sandbox Code Playgroud)

哪一个更快?循环上下文中的++ iter或iter ++.

原因关闭:

从Brian的帖子复制(使问题更简洁).

您也可以尝试以下类似问题之一:此处此处,此处此处.

c++ for-loop

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

快速查找数组中元素的数量

我有一个数组,大小可以达到10000.它只有1/2/3/4.我需要找到阵列中有多少1s,2s,3s和4s.这样做的最快方法是什么?我的使用语言是Java.我的代码 -

for(int i=0; i<myArray.length;i++){
            int element = myArray[i];
            if(element == 1){
                onesCount++;
            }
            else if(element == 2){
                twosCount++;
            }
            else if(element == 3){
                threesCount++;
            }
            else
                foursCount++;
}
Run Code Online (Sandbox Code Playgroud)

我希望有一个很好的解决方案.

java arrays performance search

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