对std::listT的封装
生活随笔
收集整理的這篇文章主要介紹了
对std::listT的封装
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
由于工作的原因,需要在線程安全的情況下對(duì)std::list<T>進(jìn)行該list進(jìn)行訪問(wèn),因此就簡(jiǎn)單的封裝了下,代碼如下:
template<typename T> class List { public:List () {}~List () {}void PushBack(const T& value) {boost::mutex::scoped_lock lock(mutex_);element_list_.push_back(value);}T Front() {boost::mutex::scoped_lock lock(mutex_);return element_list_.front();}void PopFront() {boost::mutex::scoped_lock lock(mutex_);element_list_.pop_front();}bool Empty() {boost::mutex::scoped_lock lock(mutex_);return element_list_.empty();}void Resize(const size_t& size) {boost::mutex::scoped_lock lock(mutex_);element_list_.resize(size);}size_t Size() {boost::mutex::scoped_lock lock(mutex_);return element_list_.size();}private:boost::mutex mutex_;std::list<T> element_list_;private:List (const List &);List & operator=(const List &); };調(diào)用方式: List<string*> list_; auto item = list_.Pop(); list_.PopFront();// 刪除時(shí)的調(diào)用方式 while (list_.Size() > 0) {auto item = list_.Front();list_.PopFront();delete item;item = nullptr; }構(gòu)造函數(shù)中對(duì)list_中PushBack(value)元素,析構(gòu)函數(shù)中釋放元素占用的內(nèi)存
總結(jié)
以上是生活随笔為你收集整理的对std::listT的封装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: git提交代码至代码仓库详细步骤
- 下一篇: IPTV终端技术