c++ - C++11 List/Set/Vector 原子获取和弹出
问题描述
我想要实现的目标:拥有一组无序数字,我想原子地选择一个随机(或第一个,或其他)元素并在同一操作中从集合中删除。
目前,我有:
std::list<int> pool = {1, 2, 3, ...};
int handle = pool.front();
pool.pop_front();
但是,这并不能保证原子性!我曾希望存在这样的事情:
std::list<int> pool = {1, 2, 3, ...};
int handle = pool.pop_front();
我如何实现这一目标?
解决方案
推荐阅读
- tensorflow - 基于状态为图像的 keras 的 Actor Critic
- reactjs - 如何从阻止页面渲染中删除更漂亮的错误
- reactjs - 错误:使用 yt-search 和 create-react-app 找不到模块“cheerio”
- python - Python检查列表中已存在元素
- react-native - GoogleSignIn.null:在 Android 上使用 Google 登录时出现 DEVELOPER_ERROR
- git - 致命:'origin' 似乎不是 git 存储库 请确保您具有正确的访问权限并且存储库存在
- javascript - 在 Google App Script 中获取带前缀的 XML 元素
- javascript - 快照侦听器中未捕获的错误:FirebaseError:缺少权限或权限不足
- python - 减少文本文件列表中的数量
- ruby - 无法在 MacOS 11.0 中使用“pod install”