我想存储 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/