我读了几行代码here在我看来应该有一些括号。
template<class InputIterator, class OutputIterator>
OutputIterator copy ( InputIterator first, InputIterator last, OutputIterator result )
{
while (first!=last)
*result++ = *first++; // <--- this line
return result;
}
根据运算符优先级表here ,我认为后缀增量优先,然后是取消引用,然后是赋值。但在我看来,其意图是首先发生取消引用,然后是赋值,然后是后缀增量。
我读错了吗?还是表错了,还是代码片段错了?还是另有原因?
最佳答案
后缀增量确实首先执行,但是后缀增量的返回值是指针的原始值。这就是它起作用的原因。
关于c++ - `copy`实现示例中的运算符优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6846307/