c++ - 无论传递了迭代器类型/指针,指向元素的地址

标签 c++ pointers iterator object-address

以下函数最通用的语法是什么:

template<IteratorType> void myFunction(const IteratorType& myIterator)
{
    _ptr = &myIterator[0];
}

它接受一个迭代器myIterator(它可以是一个原始指针),目标是将myIterator指向的对象的地址分配给一个原始指针_ptr。目前我使用 &myIterator[0] 但我意识到只有随机访问迭代器才有运算符 []。

那么有没有一种语法适用于所有类型的标准迭代器和指针?

最佳答案

您可以取消引用指针,然后获取对象的地址。

template<IteratorType> void myFunction(const IteratorType& myIterator)
{
    _ptr = &(*myIterator);
}

关于c++ - 无论传递了迭代器类型/指针,指向元素的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12179460/

相关文章:

c - C 中获取函数返回参数的地址

python - 如何迭代多个不同长度的列表,但重复较短列表的最后一个值,直到完成最长列表?

c++ - 处理迭代器时由信号 SIGSEGV(地址边界错误)终止

c++ - 遍历标准队列

c++ - 下面的代码会产生什么?

c++ - 如何制作未定义的移位 “correct”

c++ - 在 C++ 中从 int* 转换为 char*

C++指针语法问题

c++ - 什么是 undefined reference /未解析的外部符号错误,我该如何解决?

c++ - StretchBlt() 不创建镜像