gpt4 book ai didi

c++ - 在集合之间移动 `unique_ptr` s

转载 作者:可可西里 更新时间:2023-11-01 18:39:02 26 4
gpt4 key购买 nike

我有两个集合和一个指向 a 元素的迭代器:

set<unique_ptr<X>> a, b;
set<unique_ptr<X>>::iterator iter = find something in a;

我想从 a 中删除 iter 指向的元素并将其插入到 b 中。可能吗?怎么办?

最佳答案

嗯,我怀疑没有正常的方法可以做到这一点。但总有一个不正常的:)您可以执行以下操作:

auto tmp = const_cast<std::unique_ptr<std::string>&&>(*iter);
a.erase(iter);
b.insert(std::move(tmp));

好的,第一行违反了 set 不变性,这很可怕,但据我所知,这应该不是问题,因为在下一行我们从集合中删除了这个邪恶的节点。

关于c++ - 在集合之间移动 `unique_ptr` s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30048648/

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