KaiwuDBkaiwudb logo

KaiwuDB 技术博客专区

TBB 开源库中 concurrent_hash_map 介绍

2023-08-09







一、成员类型





2.png



二、接口函数





1. 清除

void clear();

作用:从容器中移除所有元素,该接口会释放申请到的内存空间。

注意:不支持与其他操作并行执行。


2. 交换

void swap(concurrent_hash_map& other);

作用:交换 *this 和 other 的内容。

注意:不支持与其他操作并行执行。


3. 大小和容量

void swap(concurrent_hash_map& other);

作用:返回容器中元素的数量。

注意:在并发插入或删除的情况下,返回的结果可能与容器内实际的数量存在差异。


bool empty() const;

作用:如果容器为空,返回 True,否则返回 False。

注意:在并发插入或删除的情况下,返回的结果可能与容器内实际的数量存在差异。


size_type max_size() const;

作用:容器所能容纳的最大元素数。


4. 查找

bool find( const_accessor& result, const key_type& key ) const; 
bool find( accessor& result, const key_type& key ); 
template <typename K> bool find( const_accessor& result, const K& key ) const; 
template <typename K> bool find( accessor& result, const K& key );

作用:如果找到 key 对应的元素,返回 True,否则返回 False。

注意:可以与 insert、emplace、erase 并行执行。


5. 查询

size_type count( const key_type& key ) const; 
template <typename K> size_type count( const K& key ) const;

作用:如果存在 key 对应的元素,返回 1,否则返回 0。


6. 插入

bool insert( const_accessor& result, const key_type& key ); 
bool insert( accessor& result, const key_type& key ); 
template <typename K> bool insert( const_accessor& result, const K& key ); 
template <typename K> bool insert( accessor& result, const K& key ); 
bool insert( const_accessor& result, const value_type& value ); 
bool insert( accessor& result, const value_type& value );

作用:往容器中插入元素,如果插入成功,返回 True,否则返回 False。

注意:可以与 find、emplace、erase 并行执行。


bool insert( const value_type& value );

作用:尝试将值插入容器中,如果插入成功,返回 True,否则返回 False。

注意:可以与 find、emplace、erase 并行执行。


bool insert( value_type&& value );

作用:尝试使用move语义将值插入容器,如果插入成功,返回True,否则返回False。

注意:可以与find、emplace、erase并行执行。


7. 存放

template <typename... Args> bool emplace( const_accessor& result, Args&&... args ); 
template <typename... Args> bool emplace( accessor& result, Args&&... args ); 
template <typename... Args> bool emplace( Args&&... args );

作用:尝试将值插入容器中,如果插入成功,返回 True,否则返回 False。

注意:可以与 find、insert、erase 并行执行。


8. 擦除

bool erase( const key_type& key ); 
template <typename K> bool erase( const K& key );

作用:如果存在 key 对应的元素,则将其从容器中移除。

注意:可以与 find、insert、emplace 并行执行。


bool erase( const_accessor& item_accessor ); 
bool erase( accessor& item_accessor );

作用:从容器中移除访问器所指定的元素。如果元素被当前线程移除,则返回 True;如果元素被另一个线程移除,则返回 False。

注意:可以与 find、insert、emplace 并行执行。


9. 迭代器

iterator begin(); 
const_iterator begin() const;
const_iterator cbegin() const;

iterator end();
const_iterator end() const;
const_iterator cend() const;

作用:指向容器中第一个(最后一个)元素的迭代器。

注意:不支持与其他操作并行执行。



免费体验 KaiwuDB 全新功能

立即体验

关于我们
联系我们

KaiwuDB B站

KaiwuDB
B站

KaiwuDB 微信公众号

KaiwuDB
微信公众号

© 上海沄熹科技有限公司 Shanghai Yunxi Technology Co., Ltd.    沪ICP备2023002175号-1
400-624-5688-7
1V1 方案咨询
marketing@kaiwudb.org.cn