取消引用指针,然后取消引用的地址

Kan*_*ing 6 c++ pointers

我读了STL和指针的用法困惑了我.

destroy(&*first);
Run Code Online (Sandbox Code Playgroud)

首先是指针,然后"&*first"等于first,为什么不直接使用?destroy声明如下:

void destroy(T* pointer)
Run Code Online (Sandbox Code Playgroud)

T是模板参数.

Rap*_*ptz 7

这很可能是由于运营商超载造成的.first是通常赋予迭代器的名称,它重载operator*返回对容器的指向元素的引用,然后operator&用于获取迭代器指向的变量的地址.您可以在此处阅读有关迭代器的更多信息.

但是,如果first是指针而不是用户定义的迭代器,则可以直接使用first.请注意,指针可以是迭代器(特别是RandomAccessIterators).