gpt4 book ai didi

c++ - 存储指针 vector 的最佳 C++11 方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:08:12 35 4
gpt4 key购买 nike

我想存储 std::threads 的 vector

目前,我将其实现为 std::vector<std::thread*>但是,这需要手动删除 std::thread

执行此操作的最优雅的 c++11 方法是什么?我可以看到 std::shared_ptr ,但这不是矫枉过正吗?指针是唯一的,但是 std::vector需要临时复制。

也许我不需要指点,但是std::thread不可复制,我想我可以。

谢谢!

最佳答案

自 C++11 起,vector只要求它的值是可移动的,如thread是。所以vector<thread>应该可以满足您的需求。

对于不可复制类型的操作有一些限制 - 您不能将值复制入或复制出,只能移动或放置它们 - 但这些很容易适应。

如果您确实需要存储不可移动的类型(例如 mutex),那么 unique_ptr可能是最好的选择;或类似 deque 的容器或 list不需要移动它的值。

关于c++ - 存储指针 vector 的最佳 C++11 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29037929/

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