我正在阅读《C++程序设计语言(第四版)》,遇到了这个问题:
据我理解,我们正在遍历
template<class C, class Oper>
void for_all(C& c, Oper op) // assume that C is a container of pointers
{
for (auto& x : c)
op(*x); // pass op() a reference to each element pointed to
}
据我理解,我们正在遍历
c
并获取x
的引用,它是当前迭代的对象。x
然后传递给op
的函数调用操作符,但首先进行了解引用操作?为什么要解引用x
?
C
是指针的容器。显然op()
不需要一个指针,而是需要指针所指向的值。因此,您需要进行间接操作。 - Barmar