C++. POD数据类型

1、 所有标量类型(基本类型和指针类型)、POD结构类型、POD联合类型、以及这几种类型的数组、const/volatile修饰的版本都是POD类型。2、 POD结构/联合类型:一个聚合体(包括class),它的非static成员都不是pointer to class member、pointer to class member function、非POD结构、非POD联合,以及这些类型的数组、引用、const/volatile修饰的版...
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

C++. 变量的存储说明符和cv-限定符. 简单复习

在C++中创建变量时,前面有时会有一些修饰符,这里总结一下。大体分为两个类别:存储说明符和cv-限定符。存储说明符存储说明符有下面这些:auto register static extern mutableauto修饰符的变量时自动变量,如果变量没有任何修饰符,默认就是自动变量,其作用域在函数内部。register修饰变量将创建一个寄存器变量,理念在于CPU访问寄存器中的值比访问普通存储在堆栈中的值速度要快,声明方法:register int count_fast;需
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

leetcode刷题. 面试题55 - II. 平衡二叉树

输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 bool IsBalanced(TreeNode *root, int &depth) { if (nullptr == root) return true; int left = 0, right = 0; if (IsBalanced(root-&.
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

面试算法题. 单链表反转的递归版本

// 链表节点结构struct ListNode { ListNode(int a = 0) : val(a), next(nullptr) { } int val; ListNode* next;};// 递归版本的链表反转ListNode* ReverseList(ListNode* head) { if (nullptr == head) return nullptr; if (nullptr == head->next) return head;.
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

面试算法题. 单向链表奇偶节点拆分与排序. 链表的基本操作

思路:将奇偶节点拆分 降序链表反转 两个有序链表合并// 链表节点结构struct ListNode { ListNode(int a = 0) : val(a), next(nullptr) { } int val; ListNode* next;};// 递归版本的链表反转ListNode* ReverseList(ListNode* head) { if (nullptr == head) return nullptr; if (nullptr .
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

面试算法题. 二叉树前、中、后序遍历的迭代版本. 简单复习

// 1. 先序遍历 void FirstSearch(TreeNode* root) { if (nullptr == root) return; stack<TreeNode*> stack_; stack_.push(root); while (stack_.size()) { TreeNode* node = stack_.top()..
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

面试算法题. 迭代方法求二叉树的高度

#include <iostream>#include <stack>using namespace std;struct TreeNode{ TreeNode(int v) : val(v), left(nullptr), right(nullptr){ } int val; TreeNode *left; TreeNode *right;}; int highBinaryTree(TreeNode*.
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

P2P流媒体开源项目汇总与简述

1. PeerCast项目2002年成立,最早的开源P2P流媒体项目。PeerCast把节点按树结构组织起来,每个频道都是一颗树,直播源是根节点,父节点只给子节点提供数据。节点离根节点越远,传输时延迟就越大,所以数的深度应该尽可能短,但节点有限的上行带宽限制了节点的带宽。2. Tribler项目2008年开始的项目,既能实现BT下载,还能播放视频的点播与直播。最大的特点是完全去中心化的设计,把传统的Tracker Server的工作分散到每个节点中去。开发语言是python。3. Goalt
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

C++面试题. 小米社招

一面:C++面向对象的三种特性?(每条详细说说) C++继承和组合?你在实际项目中是怎么使用的?什么情况下使用继承?什么情况下使用组合? C++构造函数可以是虚函数吗?为什么? C++析构函数可以是虚函数吗?为什么要将析构函数设置为虚函数? C++如何实现多态?虚表指针是什么时候被初始化的?实例化一个对象需要那几个阶段?(三个) C++偏特化? 重载、重写、覆盖? static关键字的作用?(要全面)怎么实现的? inline和宏定义的区别?inline是如何实现的?宏定义是如何实现的?
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

五种常见的流媒体协议(简单归类)

流媒体(streaming media)是指将一连串数据压缩后,经过网络分段发送,即时传输以供观看音视频的一种技术。通过使用 streaming media 技术,用户无需将文件下载到本地即可播放。由于媒体是以连续的数据流发送的,因此在媒体到达时即可播放。可以像下载的文件一样进行暂停、快进或后退操作。在这篇文章中,首先将说明什么是 video streaming protocol;其次会讨论流协议(streaming protocl)和编解码器之间的区别;最后,将介绍五种常见的流协议。1. 什么
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

WebRTC安卓Native code编译下载失败问题

记录下今天编译WebRTC 安卓Native code遇到的一个问题。相关错误提示如下:root@ubuntu:~/webrtc# gclient syncRunning depot tools as root is sad.Syncing projects: 100% (258/258), done.
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

谈一谈弱网络下手游的网络同步(一)

这篇专栏目前打算写两个部分,第一个部分是弱网络解决方案以及帧同步的总结;第二个部分主要讲基于ECS架构下的状态同步解决方案。如果有时间的话应该还会写几篇关于UE4的网络同步原理的文章。废话不多说,那些网络游戏的前世今生以及远古网络游戏的同步技术这里就不逼逼了,Let's get into the point!弱网络下为什么用UDP而不用TCP弱网络下其丢包、乱序的情况比较常见,延迟也相对有线网络来说更加大,所以手游在弱网络下无法直接照搬端游的那套解决方案。所以手游必须的同步方案必须要另辟蹊径
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

谈一谈弱网络下手游的网络同步(二)

上一篇文章主要介绍了手机游戏在弱网络下抵抗网络抖动的解决方案以及传统帧同步在手机游戏上的应用。这一篇主要包括两个部分,第一部分为ECS架构(Entity-Component-System),第二部分ECS架构下状态同步的解决方案以及UE4引擎的序列化与反序列化。什么是ECS架构首先先放上一个unity的ECS插件:sschmid/Entitas-CSharp,感兴趣的同学可以参考源码,虽然是Unity的插件,但是也可以改成C++然后集成进UE4。ECS架构目前在游戏开发中可以说是一个比较先进的框架
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

啥是BGP机房啊,被科普一下!

国内的主流机房大致可分为:电信单线机房、联通单线机房、移动单线机房和BGP多线机房这几类。定义:简单的来说机房在进行初期建设中将电信、联通、联通等线路都接入到机房中,然后在通过BGP互联技术将不同的线路进行融合,这就是BGP机房。好处(优势):如果你的服务器托管在BGP机房中,你将服务器放在BGP多线机房中,用户通过电信线路访问你的服务器,机房能够自动识别用户的电信线路,然后通过电信线路将信息返回给用户。这样避免了单线机房不同线路将访问信息发送给运营商进行识别而带来的延时,保证了不同线路用户
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

Linux tcp 网络常见报错及分析

Linux 网络常见报错及分析被来是想将报错和监控拆开的,但是发现两者几乎是耦合的,通过监控项才能发现错误,定为错误的原因时也要依赖监控项。索性就将两者合并到了一起。对于很多的报错,实际上你即使看到报错的信息也不清楚到底是那里报错了,或者模棱两可,甚至是误导。最好的方式是 “Show me the code” 。在此,简单介绍一下与网络相关的调试、查看方法,当然也包括了报错相关的内容。查看网络的状态有很多中方法,如之前介绍的网络状态查看命令 netstat VS. ss,也即使用 netl.
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

A Study of WebRTC Security

AbstractWeb Real-Time Communication (abbreviated as WebRTC) is a recent trend in web application technology, which promises the ability to enable real-time communication in the browser without the need for plug-ins or other requirements. However, the ope
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

Linux系统终端分屏——实用小技巧

一.使用screen分屏(只能上下分屏,不能左右分屏)1. 安装工具sudo apt-get install screen2. 上下分屏ctr + a 再按 shift + s3. 切换屏幕ctr + a 再按tab键4. 新建一个终端ctr + a 再按c5. 关闭一个终端ctr+ a 再按 x...
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

C++ WebSocket 库

WebSocket 是 HTML5 的一个引入注目的特性,它通常用于 Web 端,为构建实时的 Web 应用提供方便。WebSocket 是一个基于 TCP 的协议,它借助于 HTTP 请求,建立客户端与服务器端之间的双向通道,通道建立完成后,客户端和服务器端都可以通过这条通道方便地收发消息,因而 WebSocket 一向有着 “Web 的 TCP” 之称。WebSocket 不是 JavaScript 的一个接口,而是一个定义良好的基于消息的协议。得益于不同平台对于 WebSocket 协议的广泛实现
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

VS2019 远程调试linux:新增、修改远程计算机连接

Tools > Options > Cross Platform > Connection Manage工具>选项>跨平台>连接管理器
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0

openssl编程easy demo

目录目录 11.编写目的 12.示例包 13.什么是SSL?24.什么是openssl?25.示例程序 26.服务端编写步骤 37.客户端编写步骤 48.相关头文件 48.1.socket头文件48.2.SSL头文件49.结尾 51.编写目的第一次跑起openssl示例并不太简单,本文的目的是为了让这个过程变得非常简单。在开始之前,要非常感谢周立发同学,正是通过他共享的示例,较轻松的入了门。本文档对他共享的示例...
分类: 其他 发布时间: 10-04 10:59 阅读次数: 0