vbuffer.hpp
//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的更多相关文章
- C++ 使用 opencv 库时 Point 在已经引入了 core.hpp 的情况下仍无法识别的可能原因
		
引入了 core.hpp 是不够的.请加上 using namespace cv;
 - OPENCV配置 C1083: 无法打开包括文件:“opencv2/opencv.hpp”
		
本人没实操过C/C++,理论看过不少. 目前出于提升技术的考虑想做OPENCV 配置了2天,总算是配置好了..遇到不少问题. 计算机配置WIN10,用户环境变量配置也郁闷过... JDK等配置方式,配 ...
 - hpp头文件与h头文件的区别
		
hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译.而实现代码将直接 ...
 - .hpp与.h的区别
		
本文转载http://blog.csdn.net/liuzhanchen1987/article/details/7270005,在此感谢 hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定 ...
 - caffe的db_lmdb.hpp文件
		
先总的说一下: 类:LMDBCursor: 它干了点什么?它需要传入参数为:mdb_txn(传入它是因为用完它,把它absort掉), mdb_cursor;它应该是用来读出数据的: 类:LMDBT ...
 - caffe里的blocking_queue.hpp与.cpp干了点什么呢???
		
我看的一下午才明白的,因为吧,我之前都是不知道与boost::thread相关的任何知识,然后开始看各种资料啊... 妈的,我就是一个小白,没一点基础的.. 总的来说:blocking_queue实现 ...
 - caffe中的filler.hpp源码的作用:
		
filler.hpp文件:(它应该没有对应的.cpp文件,一切实现都是在头文件中定义的,可能是因为filler只分在网络初始化时用到那么一次吧) 1,首先定义了基类:Filler,它包括:一个纯虚函数 ...
 - .hpp文件
		
hpp在C++中的含义 以前在开源代码里面遇到过,今天看boost源码的时候又遇到了,故学习一下. hPP,计算机术语,用C/C++语言编写的头文件,通常用来定义数据类型,声明变量.函数.结构和类.而 ...
 - OpenCV源码阅读(3)---base.hpp
		
base.h处于core模块中,是OpenCV的核心类.其作用是定义了OpenCV的基本错误类型,在程序运行出现错误是抛出错误,防止数据溢出.总而言之,其功能主要是考虑程序的健壮性. 头文件 #ifn ...
 
随机推荐
- vue移动端适配
			
https://www.w3cplus.com/mobile/vw-layout-in-vue.html
 - 让windows10的右键菜单既显示传统cmd又显示powershell
			
在windows10的资源管理器中,按住shift点击右键,只显示 open powershell window here,却没有传统的cmd 解决方法就是修改注册表: HKEY_LOCAL_MACH ...
 - 使用 acme.sh 签发续签 Let‘s Encrypt 证书 泛域名证书
			
1. 安装 acme.sh 安装很简单, 一个命令: curl https://get.acme.sh | sh 并创建 一个 bash 的 alias, 方便你的使用 alias acme.sh=~ ...
 - mutex,thread
			
//#include <stdio.h> //#include <stdlib.h> //#include <unistd.h> #include <wind ...
 - HashMap 源码分析
			
static final int DEFAULT_INITIAL_CAPACITY = 16; 默认容量 static final int MAXIMUM_CAPACITY = 1073741824 ...
 - python学习笔记之paramiko和sqlalchemy (第九天)
			
参考银角大王 :http://www.cnblogs.com/wupeiqi/articles/5095821.html http://www.cnblogs.com/wupeiqi/articles ...
 - Flask-Migrate
			
终于到了Flask-Migrate,之前在看Flask-SQLAlchemy的时候, Flask支持 makemigration / migrate 吗? 答案在这里该诉你,如果你同时拥有两个三方组件 ...
 - svn基础了解
			
Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的 ...
 - C#导出文本内容到word文档源码
			
将做工程过程中较好的代码片段珍藏起来,下面的代码内容是关于C#导出文本内容到word文档的代码,希望能对小伙伴们也有好处.<%@ Page Language="C#" Aut ...
 - vm中的nat模式不能连接到主机,以及不能上网
			
主机能够ping通vm中的ip,但是vm不能ping通主机ip vm不能ping通主机:主要是虚拟机中的gateway的设置和vm的网络编辑器中的网关id不一致造成的 vm不能上外网:dns没有配置正 ...