自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 循环中的定义的变量构造了几次?

    测试代码:class Test {public: Test() { std::cout << __func__ << "\n"; } ~Test() { std::cout << __func__ << "\n"; }};int main() { int i = 2; while (i--) { Test te...

2018-06-24 11:59:46 304

原创 std::string 清空方式的性能测试。

    一般情况下,清空字符串有两种方式:(1)给字符串赋值空串。(2)调用std::string::clear()函数。    测试代码:     const int kMaxLoop = 1000000; { boost::timer::auto_cpu_timer timer; std::string test; int i = kMaxLoop; whil...

2018-06-24 11:56:32 12490

转载 B站不挡脸弹幕 这到底是什么黑科技?

B站不挡脸弹幕 这到底是什么黑科技?2018.06.23 18:13:19来源: 游迅网作者:游迅网 B站不挡脸弹幕 这到底是什么黑科技? 近日,B站针对弹幕功能进行了升级,正式推出了“不挡脸”的弹幕功能。具体效果为:用户打开打开一则舞蹈视频右下角的“智能防挡弹幕”功能后,弹幕就立刻神奇转变,飘过去的文字竟然变得仿佛从人体身后穿过一样。甚至,视频画面有时会给人一种裸眼3D的感觉。这一技术被B站官方...

2018-06-24 11:55:06 2072

原创 Idiom:Shrink-to-fit

一些STL容器如std::string,std::vector会申请比实际写入的字节更多的内存还优化效率,这个Idiom可以让它们的内存没有多余的。std::vector<int> v;std::vector<int>(v.begin(), v.end()).swap(v);...

2018-06-24 11:45:46 269

原创 Idiom:Multi-statement Macro

用do{}while(false)封装避免分号带来的问题。#define IntValueInit(P1, P2) \ do{ \ P1 = 1; \ P2 = 2; \ }while(false)

2018-06-24 11:31:28 232

原创 Idiom:Include Guard Macro

1. #pragma once编译器支持情况:Compiler#pragma onceARM DS-5Supported[18]C++Builder XE3Supported[10]ClangSupported[7]Comeau C/C++Supported[8]Cray C and C++Unsupported as of version 8.6[9]Digital Mars C++Suppor...

2018-06-24 11:21:27 243

原创 Idiom:Copy-and-swap

简单的实现:class Myclass {public: Myclass(size_t size) : data_(size ? new(std::nothrow) int[size] : nullptr) , size_(!data_ ? 0 : size){} Myclass(const Myclass& other) { data_ = other.size_ ? ...

2018-06-24 11:08:52 193

原创 std::vector 如何对数组进行assign 和 push_back操作。

1) assign char arr[] = { 1,2,3 }; std::vector<char> buffer; buffer.clear(); buffer.insert(buffer.begin(), std::begin(arr), std::end(arr)); assert(buffer.size() == 3); assert(buffer[0]...

2018-06-23 22:19:38 4031

原创 Idiom:Scope Guard

最简单的Scope Guardclass SimplestScopeGuard {public: SimplestScopeGuard(std::function<void()> func) : func_(func), dismiss_(false) {} ~SimplestScopeGuard() { if (func_ && !dismiss_)...

2018-06-23 21:53:34 174

原创 Idiom: Copy-on-write

最简单的cow:class SimplestCOW {public: void Write(int value) { if (!data_ || !data_.unique()) data_ = std::make_shared<int>(); *data_ = value; }private: std::shared_ptr<int...

2018-06-23 21:40:04 166

原创 Idiom: Non-copyable

用c++98:class NoCopyable {public: NoCopyable() {} ~NoCopyable() {}private: NoCopyable(const NoCopyable&); // Not implemented. NoCopyable& operator=(const NoCopyable&); // Not imp...

2018-06-23 21:20:14 203

原创 Idiom : pimpl

用c++ 11实现:#include <memory>class MyClass {public: MyClass(); ~MyClass(); void DoSomeThing();private: class MyClassImpl; std::unique_ptr<MyClassImpl> impl_;};#include "My...

2018-06-23 21:14:17 380

转载 rtp 简介

原文链接RTP协议        实时传输协议RTP(Real-time Transport Protocol)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的,后在RFC3550中进行更新。         国际电信联盟ITU-T也发布了自己的RTP文档,作为H.225.0,但是后来当IETF发布了关于它的稳定的标准RFC后就被取消了。它作为因特网标准在...

2018-06-23 20:28:14 983

转载 rtsp 简介

一、RTSP协议介绍什么是rtsp?RTSP协议以客户服务器方式工作,,如:暂停/继续、后退、前进等。它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制, 因此 RTSP 又称为“因特网录像机遥控协议”。        RTSP(Real-Time Stream Protocol)是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似。...

2018-06-23 20:26:08 3064 1

转载 RTP H264 分包解包

一、 h264基础概念SODB: 数据比特串-->最原始的编码数据RBSP: 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若干比特“0”,以便字节对齐。EBSP: 扩展字节序列载荷-- >在RBSP基础上填加了仿校验字节(0X03)它的原因是: 在NALU加到Annexb上时,需要填加每组NALU之前的开始码 StartCod...

2018-06-23 20:22:49 2330

转载 rtp over tcp

通常来说,RTSP提供UDP方式发送RTP流。当然,发送流媒体时,UDP往往是更好的选择。###下面是使用UDP时的一些问题:UDP协议上的RTSP/RTP需要打开许多UDP端口(每一路流媒体都需要2个UDP端口,一个用于接收数据,一个用于接收控制信息);当因特网上的路由器没有打开这些端口的时候,第一点将会存在问题;中间网络路由器很容易就过滤或者忽略掉UDP数据包;UDP是不可靠传输协议,媒体包在...

2018-06-23 20:11:58 286

转载 wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)

wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)2016年03月14日 10:46:16阅读数:6668本文非笔者原著,从网络上检索得到,原始出处不可考,再次对原作者表示感谢!wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容)1.   关键字“与”:“eq” 和 “==”等同,可以使用 “and” 表示并且,“或”:“or”表示或者。“非”:“!" 和 "...

2018-06-23 19:25:44 38299

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除