gpt4 book ai didi

c++ - 将转换运算符放在迭代器中以将其转换为指针是个好主意吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:41 26 4
gpt4 key购买 nike

今天看到如下代码:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com