相关疑难解决方法(0)

++ i与i ++:现代编译器有什么区别吗?

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

我明白那个:

i++;
Run Code Online (Sandbox Code Playgroud)

应该采取更多的指示

++i;
Run Code Online (Sandbox Code Playgroud)

因为它生成了一个你不需要使用的中间结果,所以人们把"++ i"放在对中间结果毫无用处的代码行上.

但是,编译器非常聪明,他们可以判断结果是否被使用.他们可以说出各种各样的事情.但它们并不神奇

所以我很好奇 - 在现代编译器上确实选择了另一种实际问题,或者它是否只是简单地编译成相同的机器代码?

c c++ compiler-construction

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

运算符x ++; 和++ x; 对于int.Which更快?为什么?

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

他们说这++i更快但我不明白为什么.谁能告诉我这些运营商的汇编代码?

c++ increment

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

为什么++ i比i ++更有效?

根据谷歌C++样式指南,"当忽略返回值时,'pre'形式(++i)的效率永远不会低于'post'形式(i++),并且效率通常更高."

该指南继续解释原因,但我不完全理解.思考?也许有人可以提供这个概念的例子?

c++ for-loop while-loop do-while

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

是否比快?

正如在主题中,我在学校里学到的是,速度更快,但有人告诉我,虽然速度更快......我必须优化程序,我想写'while',而不是'for',但是......它赢了'慢一点?例如:

for (int i=0; i<x; i++)
{
   cout<<"dcfvgbh"<<endl;
}
Run Code Online (Sandbox Code Playgroud)

我会写:

i=0;
while (i<x)
{
    cout<<"dcfvgbh"<<endl;
    i++;
}
Run Code Online (Sandbox Code Playgroud)

c++ performance

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

在 for 循环条件中递增

在浏览 Linux 源代码时,我遇到了以下

int tmp;    
for (tmp = PIDTYPE_MAX; --tmp >= 0; )
Run Code Online (Sandbox Code Playgroud)

为什么不这样做:

for (tmp = PIDTYPE_MAX; tmp >= 0; tmp--)
Run Code Online (Sandbox Code Playgroud)

这是一种for循环优化吗?

c performance for-loop

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

为什么php中的++运算符处理对象属性?

我把这段代码展示给了我的朋友

$user->attempts++; // the attempts property returns an int
Run Code Online (Sandbox Code Playgroud)

并且他就像是说代码是多么愚蠢,漫无边际的数字运算符会在附加到对象时产生语法错误; 事情是它按照我的预期工作(增加尝试1,哦是的,我测试了它)

所以我问,为什么这到底有效?

php object

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

增量++ i,i ++和i + = 1

我是C++的初学者.我的理解是: -

i ++首先执行,然后递增,++ i先递增,然后执行,i + = 1递增1,然后执行.但是在FOR循环中:

for (i=0;i<10;i++)
for (i=0;i<10;++i)
Run Code Online (Sandbox Code Playgroud)

上面这两个循环确实没有区别.

这是另一个计算从1到100的所有整数的总和:

int i=1, sum=0;
while (i<=100)
{
    sum+=i;
    i++;         //i+=1;    ++i;
}
cout<<sum<<" "<<i<<endl;
return 0;
Run Code Online (Sandbox Code Playgroud)

但是如果我用i + = 1或++ i替换i ++,它们都会返回5050和101的总和.所以我真的看不出它们有什么不同.

所以有人可以向我解释这个吗?编程中哪一个最常用?谢谢!!

c++ for-loop increment

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

在C++中推荐的++或+1是什么?

S++或者S=S+1,可以建议将值增加1,为什么?

我认为S++应该是首选,因为它是内部的单机指令(INC).如果我错了,请让我纠正.其他方式我认为两者都是相同的,除了++是一元的,它的后增量和运算符重载都是不同的.

C#会有什么不同吗?

c# c++ visual-c++ c++11

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

这两个代码片段中的一个是否比另一个更具有优势?

选项1:

vector vec;
/* ... .. ... */
for (auto itr = vec.begin(); itr != vec.end(); itr++) {
    itr->print();
}
Run Code Online (Sandbox Code Playgroud)

选项2:

vector vec;
/* ... .. ... */
for (auto itr = vec.begin(); itr != vec.end(); ++itr) {
    itr->print();
}
Run Code Online (Sandbox Code Playgroud)

我的意思是,我知道它们会提供相同的输出,但是它们在性能方面有什么区别吗?

c++

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

i = i + 1 和 ++i 之间的速度比较

i = i + 1不是快++i了C ++ 11?我听说++ii++类快,但不是简单类型。i = i + 1和其他两个之间有类似的比较吗?
谢谢!

编辑 1:我使用 g++,但我很高兴知道这在其他编译器上是如何工作的。
编辑2:这个问题是不同的这一个,因为它专门询问i = i + 1,而不是只是在谈论之间的差异++ii++

EDIT 3:(TonyD -由QuantumFool语法编)的i = i + 1问题的方面是重复

c++ increment c++11

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