gpt4 book ai didi

c++ - 从 boost unordered 转换为 tbb concurrent hash map

转载 作者:行者123 更新时间:2023-11-28 02:53:02 24 4
gpt4 key购买 nike

我是 C++ 的新手,我一直在寻找关于 tbb 并发 HashMap 的初学者教程,但没有成功。我一直在我的 C++ 程序中使用 boost 无序 HashMap ,现在我想使用 tbb 的并发 HashMap ,因为多个线程将同时写入 HashMap 。

我在boost的hash map上做了以下四个操作:

typedef boost::unordered_map<string, std::vector<int> > MAP;
MAP myMap;
  1. 插入到 myMap 中:

    string key = "somestring"
    int somevalue = 1
    myMap[key].push_back(somevalue);
  2. 遍历 myMap 中的所有键:

    BOOST_FOREACH(MAP::value_type pair, myMap)
    {
    string key = pair.first;
    }
  3. 返回与键关联的值:

    MAP::const_iterator iter = myMap.find("somekey");

如何使用 tbb 并发 HashMap 实现 1、2 和 3?请注意,我仅在所有线程完成其插入操作后执行 2 和 3

最佳答案

您应该能够简单地将 typedef 更改为 typedef tbb::concurrent_unordered_map<string, std::vector<int> > MAP;并安全地使用多线程容器。

insert、iterators (begin .. end) 和 find 方法都以相同的方式工作,但与 unordered_map 不同的是它们是线程安全的。

关于c++ - 从 boost unordered 转换为 tbb concurrent hash map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22621666/

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