我今天看到以下代码:
options.push_back(&*i);
其中i
是一个迭代器,容器options
存储指向*i
类型的指针。生成的 &*i
有点难看,我开始想知道:
Is it a good idea to add a conversion operator for converting to a pointer of
*i
?
你觉得怎么样?
最佳答案
这并不难看,但可能很危险:如果迭代器i
的源是动态分配的,并且在容器options
之前被删除,这将导致容器中包含无效指针.
如果不是,那么这是完全有效的代码。为了使其更具可读性,您可以添加大括号:
options.push_back(&(*i));
如果您没有在整个代码中使用此构造,我不会在此处使用转换运算符。
关于c++ - 将转换运算符放入迭代器中以将其转换为指针是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16329368/