C ++取消引用指向迭代器的指针
c++ dereference a pointer to an iterator
此问题与 Whosebug 上的另一个问题相关。
下面的c++代码中*input_
是迭代器还是指向迭代器的指针?
所以node_insert()
returns一个迭代器并将它赋值给*input_
。这让我认为 *input_
不是指向迭代器的指针,因为如何将迭代器分配给指向迭代器的指针。
此时迭代器指向图形容器中的一个元素。这是正确的吗?
(*input_)
是否取消引用迭代器(或指向迭代器的指针)?
我不明白为什么要在迭代器周围使用大括号来调用方法 setOutputTensor()
。
我有点困惑。
Data::OpListIterator *input_;
*input_ = dataGraph_.node_insert(allocator_.make_owner<op::Input>(shape, dType, order, opName));
(*input_)->setOutputTensor(outputTensor, 0);
如果您正在使用
*input_->setOutputTensor(outputTensor, 0);
等于
*input_*.setOutputTensor(outputTensor, 0);
所以在这种情况下 input_
被取消引用(这导致迭代器)然后在迭代器上调用函数 setOutputTensor
并将导致错误。
如果您正在使用 (*input_)
,指向迭代器的指针首先被解引用,然后被 ->
再次解引用。所以使用大括号的主要区别是取消引用的顺序。
此问题与 Whosebug 上的另一个问题相关。
下面的c++代码中*input_
是迭代器还是指向迭代器的指针?
所以node_insert()
returns一个迭代器并将它赋值给*input_
。这让我认为 *input_
不是指向迭代器的指针,因为如何将迭代器分配给指向迭代器的指针。
此时迭代器指向图形容器中的一个元素。这是正确的吗?
(*input_)
是否取消引用迭代器(或指向迭代器的指针)?
我不明白为什么要在迭代器周围使用大括号来调用方法 setOutputTensor()
。
我有点困惑。
Data::OpListIterator *input_;
*input_ = dataGraph_.node_insert(allocator_.make_owner<op::Input>(shape, dType, order, opName));
(*input_)->setOutputTensor(outputTensor, 0);
如果您正在使用
*input_->setOutputTensor(outputTensor, 0);
等于
*input_*.setOutputTensor(outputTensor, 0);
所以在这种情况下 input_
被取消引用(这导致迭代器)然后在迭代器上调用函数 setOutputTensor
并将导致错误。
如果您正在使用 (*input_)
,指向迭代器的指针首先被解引用,然后被 ->
再次解引用。所以使用大括号的主要区别是取消引用的顺序。