//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. vue移动端适配

    https://www.w3cplus.com/mobile/vw-layout-in-vue.html

  2. 让windows10的右键菜单既显示传统cmd又显示powershell

    在windows10的资源管理器中,按住shift点击右键,只显示 open powershell window here,却没有传统的cmd 解决方法就是修改注册表: HKEY_LOCAL_MACH ...

  3. 使用 acme.sh 签发续签 Let‘s Encrypt 证书 泛域名证书

    1. 安装 acme.sh 安装很简单, 一个命令: curl https://get.acme.sh | sh 并创建 一个 bash 的 alias, 方便你的使用 alias acme.sh=~ ...

  4. mutex,thread

    //#include <stdio.h> //#include <stdlib.h> //#include <unistd.h> #include <wind ...

  5. HashMap 源码分析

    static final int DEFAULT_INITIAL_CAPACITY = 16;  默认容量 static final int MAXIMUM_CAPACITY = 1073741824 ...

  6. python学习笔记之paramiko和sqlalchemy (第九天)

    参考银角大王 :http://www.cnblogs.com/wupeiqi/articles/5095821.html http://www.cnblogs.com/wupeiqi/articles ...

  7. Flask-Migrate

    终于到了Flask-Migrate,之前在看Flask-SQLAlchemy的时候, Flask支持 makemigration / migrate 吗? 答案在这里该诉你,如果你同时拥有两个三方组件 ...

  8. svn基础了解

    Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的 ...

  9. C#导出文本内容到word文档源码

    将做工程过程中较好的代码片段珍藏起来,下面的代码内容是关于C#导出文本内容到word文档的代码,希望能对小伙伴们也有好处.<%@ Page Language="C#" Aut ...

  10. vm中的nat模式不能连接到主机,以及不能上网

    主机能够ping通vm中的ip,但是vm不能ping通主机ip vm不能ping通主机:主要是虚拟机中的gateway的设置和vm的网络编辑器中的网关id不一致造成的 vm不能上外网:dns没有配置正 ...