【发布时间】:2015-11-13 16:39:23
【问题描述】:
我在将 std::list<MyType>::iterator 转换为 MyType* 时遇到了一些问题。我有一个MyType 数组,当我循环遍历它时,我调用了一些void doSomething(const MyType* thing)。最终我这样做了:
std::list<MyType> types = ... something here ...;
for( std::list<MyType>::const_iterator it = types.begin(), end = types.end(); it != end; ++it ) {
doSomething(&*it);
}
我的问题是,我是否通过此操作创建MyType 的内存副本:
&*it
试图简单地传递迭代器,就像它是指针一样,或者将迭代器强制转换为指针引发编译器错误。
【问题讨论】: