DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
da_concurrent_vector< T > 模板类 参考

线程安全的list封装 更多...

#include <da_concurrent_vector.hpp>

Public 类型

using vector_type = std::vector< T >
 
using value_type = vector_type::value_type
 
using reference = vector_type::reference
 
using const_reference = vector_type::const_reference
 
using size_type = vector_type::size_type
 
using iterator = vector_type::iterator
 
using const_iterator = vector_type::const_iterator
 
using mutex_type = std::mutex
 
using lock_guard_type = std::lock_guard< mutex_type >
 
using unique_lock_type = std::unique_lock< mutex_type >
 

Public 成员函数

 da_concurrent_vector (size_type count)
 
 da_concurrent_vector (std::initializer_list< T > init)
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
bool empty () const
 
size_type size () const
 
void clear ()
 
iterator insert (iterator pos, const T &value)
 
iterator insert (const_iterator pos, const T &value)
 
void insert (iterator pos, size_type count, const T &value)
 
iterator insert (const_iterator pos, size_type count, const T &value)
 
void push_back (const T &value)
 
void push_front (const T &value)
 
void pop_front ()
 
void pop_back ()
 
iterator erase (iterator pos)
 
iterator erase (const_iterator pos)
 
iterator erase (iterator first, iterator last)
 
iterator erase (const_iterator first, const_iterator last)
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 

详细描述

template<typename T>
class da_concurrent_vector< T >

线程安全的list封装

注解
仅仅是对原来的std::list进行并行封装,不考虑极致效率,对插入时安全的,
这并不是完全线程安全的容器,例如在进行迭代时,是无法保证安全性的,这时候需要外部锁来保证线程安全. 另外,对于删除是不确定的,因为你有可能在不同线程拿了有覆盖范围的迭代器,在某个线程已经删除了,但在别的线程 又对已经剔除的迭代器进行删除,这样就导致不可预料的情况,因此,迭代操作是要额外加锁,或者保证只在某个线程进行删除, 或者不同线程删除的元素是不同的
作者
czy

该类的文档由以下文件生成: