//vov

#ifndef VBUFFER_HPP
#define VBUFFER_HPP #include <iostream>
#include <deque> template <class T>
class vBuffer
{
std::deque<T> dbuf_;
int len_;
std::mutex mtx_;
public:
vBuffer();
vBuffer(int len);
~vBuffer();
void push_back(T data);
void pop_front();
T top();
T back();
int size();
void clear();
private:
//拷贝构造函数
vBuffer(const vBuffer& t) {}
//赋值构造函数
vBuffer& operator=(const vBuffer& t) {}
}; template <class T>
vBuffer<T>::vBuffer() {
len_=1024;
} template <class T>
vBuffer<T>::vBuffer(int len) {
len_=(len>1024||len<1)?1024:len;
} template <class T>
vBuffer<T>::~vBuffer() {
} template <class T>
void vBuffer<T>::push_back(T data) {
if(dbuf_.size()==(unsigned int)len_) {
dbuf_.pop_front();
std::cout<<"[vBuffer]buffer is full:loss one data"<<std::endl;
}
dbuf_.push_back(data);
} template <class T>
void vBuffer<T>::pop_front() {
if(!dbuf_.empty())
dbuf_.pop_front();
} template <class T>
T vBuffer<T>::top() {
T data;
if(!dbuf_.empty()) {
data=dbuf_.front();
} return data;
} template <class T>
T vBuffer<T>::back() {
if(!dbuf_.empty())
return dbuf_.back();
} template <class T>
int vBuffer<T>::size() {
return dbuf_.size();
} template <class T>
void vBuffer<T>::clear() {
if(!dbuf_.empty())
dbuf_.clear();
}
#endif

vbuffer.hpp的更多相关文章

  1. C++ 使用 opencv 库时 Point 在已经引入了 core.hpp 的情况下仍无法识别的可能原因

    引入了 core.hpp 是不够的.请加上 using namespace cv;

  2. OPENCV配置 C1083: 无法打开包括文件:“opencv2/opencv.hpp”

    本人没实操过C/C++,理论看过不少. 目前出于提升技术的考虑想做OPENCV 配置了2天,总算是配置好了..遇到不少问题. 计算机配置WIN10,用户环境变量配置也郁闷过... JDK等配置方式,配 ...

  3. hpp头文件与h头文件的区别

    hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译.而实现代码将直接 ...

  4. .hpp与.h的区别

    本文转载http://blog.csdn.net/liuzhanchen1987/article/details/7270005,在此感谢 hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定 ...

  5. caffe的db_lmdb.hpp文件

    先总的说一下: 类:LMDBCursor:  它干了点什么?它需要传入参数为:mdb_txn(传入它是因为用完它,把它absort掉), mdb_cursor;它应该是用来读出数据的: 类:LMDBT ...

  6. caffe里的blocking_queue.hpp与.cpp干了点什么呢???

    我看的一下午才明白的,因为吧,我之前都是不知道与boost::thread相关的任何知识,然后开始看各种资料啊... 妈的,我就是一个小白,没一点基础的.. 总的来说:blocking_queue实现 ...

  7. caffe中的filler.hpp源码的作用:

    filler.hpp文件:(它应该没有对应的.cpp文件,一切实现都是在头文件中定义的,可能是因为filler只分在网络初始化时用到那么一次吧) 1,首先定义了基类:Filler,它包括:一个纯虚函数 ...

  8. .hpp文件

    hpp在C++中的含义 以前在开源代码里面遇到过,今天看boost源码的时候又遇到了,故学习一下. hPP,计算机术语,用C/C++语言编写的头文件,通常用来定义数据类型,声明变量.函数.结构和类.而 ...

  9. OpenCV源码阅读(3)---base.hpp

    base.h处于core模块中,是OpenCV的核心类.其作用是定义了OpenCV的基本错误类型,在程序运行出现错误是抛出错误,防止数据溢出.总而言之,其功能主要是考虑程序的健壮性. 头文件 #ifn ...

随机推荐

  1. WEB服务器,TOMCAT和servlet之间的关系

    WEB服务器,TOMCAT和servlet之间的关系 什么是WEB服务器Web服务器是指能够为发出请求的浏览器提供文档的程序.服务器是 一种被动程序,只有浏览器发出请求的时候才会响应.应用层使用 的是 ...

  2. IOT

    文档地址:http://www.owasp.org.cn/owasp-project/owasp-things?searchterm=iot 今天面试,面试官问到iot

  3. 微信网页浏览器打开链接后跳转到其他浏览器下载APK文件包

    做微信营销活动或者APK下载推广时候,是无法直接下载,做到微信中正常使用呢?这就要借助一些工具来实现有效的操作. 安卓手机的话是通过点击链接,直接跳转出微信.自动打开手机默认的浏览器.但是这个方法IO ...

  4. 记一个神奇的Bug

    多年以后,当Abraham凝视着一行行新时代的代码在屏幕上川流不息的时候,他会想起2019年4月17日那个不平凡夜晚,以及在那个夜晚他发现的那个不可思议的Bug. 虽然像无数个普普通通的夜晚一样,我在 ...

  5. codeforces-2

    B.chocolates #include<iostream> #include<algorithm> #include<string.h> long long b ...

  6. HVP plan

    HVP,hier verification plan,建立整个验证的plan,在验证后期,通过vcs的coverage db可以直接进行反标, 包括反标code coverage,function c ...

  7. Windows上IOCP Socket事件模型管理

     1.IOCP 2.使用IOCP 1)创建完成端口CreateIoCompletionPort: 2)向完成端口添加管理句柄与管理用户数据: 3)异步发送一个管理的事件请求: 4)开启工作线程来处理I ...

  8. selenium环境配置

    在命令提示符中查找 pip的位置 where pip 输入pip,出现一下信息显示,如果提示['pip' 不是内部或外部命令,也不是可运行的程序 或批处理文件.]请查看你的系统Path 上查看你的配置 ...

  9. vim基本命令总结

    编辑模式下i 从光标所在位置前开始插入文本I 将光标移动到当前行行首,然后在其前插入文本a 用于在光标当前所在位置之后追加新文本A 将光标移动到所在行行尾,在那里插入新文本o 在光标所在行的下面新开一 ...

  10. eq

    <a class="s">1</a> <a class="s">2</a> <a class=" ...