自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吴尼玛cs

记问之学

  • 博客(9)
  • 收藏
  • 关注

原创 《More Effective C++》技术篇——要求(或禁止)对象产生于heap之中

要求对象产生于heap中,意思是需要阻止clients不得使用new以外的方法产生对象。比较好的方法就是将destructor定义为private,因为constructor的类型太多,所以仍然将constructor定义为public。然后定义一个pseudo destructor来调用真正的destructor。示例如下:class HeapBasedObject {public: HeapBasedObject() {} void destroy() const { delet.

2021-10-31 17:44:50 123

原创 《More Effective C++》技术篇——限制某个class所能产生的对象数量

如下例,只要继承Counted template就可以限制class所能产生的对象数量,超过了设置的maxObjects就会抛出异常。#include <stdlib.h>#include <iostream>template<class BeingCounted>class Counted {public: class TooManyObjects{}; //这是可能被抛出的exceptions。 static int objectCou.

2021-10-24 16:11:32 93

原创 Windows通过ssh免密登录Ubuntu

生成Windows公钥Windows的CMD中执行:ssh-keygen -t rsa,执行过程中直接回车。执行完后会在C:\Users\xxx\.ssh文件夹下生成如下三个文件:id_rsa是本地私钥id_rsa.pub是公钥known_hosts是已知的ip将Windows公钥上传到Ubuntu将C:\Users\xxx\.ssh\id_rsa.pub拷贝到Ubuntu的~/.ssh中。(通过scp)然后再Ubuntu中执行:cat ~/.ssh/id_rsa.pub &g.

2021-10-23 15:10:13 1087

原创 《More Effective C++》技术篇——将constructor和non-member function虚化

所谓virtual constructor是某种函数,视其获得的输入,可产生不同类型的对象。有一种特别的virtual constructor——所谓virtual copy constructor——也被广泛地运用、virtual copy constructor会返回一个指针,指向其调用者(某对象)的一个新副本。基于这种行为,virtual copy constructor通常以copyself或cloneself命令,或者直接命名为clone。当derived class重新定义其base cl.

2021-10-17 18:27:28 108

原创 音视频基础知识点

音频PCM:脉冲编码调制(Pulse Code Modulation)。通过采样、量化、编码将模拟信号转换为数字信号。根据奈奎斯特采样定理:为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2倍。采样率:即采样的频率。因为采样率要大于原声波频率的2倍,而人耳能听到的最高频率为20kHz,所以为了满足人耳的听觉要求,采样率至少为40kHz,通常为44.1kHz,更高的通常为48kHz。采样位数:波形振幅在模拟信号上也是连续的样本值,而在数字信号中,信号一般是不连续的,所以模

2021-10-07 16:19:11 154

原创 Vim基本操作

简介Vim是Linux中一款常见的文本编辑器。本文将简单介绍一下Vim的基本使用方式。Vim编辑器有三种模式——命令模式、编辑模式、末行模式。三种模式的切换方式如下图:需要注意的是:编辑模式和末行模式之间不可直接切换。命令模式vim filename可直接新建文件,打开文件后默认进入命令模式。命令模式下可以移动光标或者进行删除、复制、粘贴。移动光标常用命令:方向键或者h(左)、j(下)、k(上)、l(右):光标移动一个字符。[Ctrl] + [f]:向下翻页。[C

2021-10-05 17:44:10 178

原创 linux目录、文件操作命令

命令基本格式命令格式:cmd [-options [parameter]] [file]cmd :命令名,如ls,cd等。[]:表示可省略内容。-option:选项,用于控制命令。格式有2种:-h、–help。parameter:给不同选项的设置的参数。file:执行命令的文件或目录。目录操作pwd:显示当前目录的绝对路径。cd:切换目录。示例:cd .. #切换到上级目录cd ~ #切换到用户根目录cd - #返回上次的工作目录ls:显示目录内容。常用参数:

2021-10-05 17:43:04 179

原创 linux动态库搜索路径顺序

在linux中执行程序时,有时会遇到“error while loading shared libraries”这种错误,这是因为动态链接器ld无法找到程序启动需要的动态库。这时就需要设置动态库的搜索路径了。动态链接器ld搜索路径的顺序以及如何设置:ELF文件中Dynamic Section段的DT_RPATH设置的路径。例如,可以在编译时添加链接参数“-Wl,–rpath,./lib”来指定搜索./lib。环境变量LD_LIBRARY_PATH设置的路径。ELF文件中Dynamic se..

2021-10-03 16:24:20 233

原创 Linux中获取当前进程的绝对路径

通过readlink的方式获取。bool GetExePath(std::string &path){ std::string exe_path(PATH_MAX, std::string::value_type()); auto exe_path_len = readlink("/proc/self/exe", &exe_path[0], exe_path.size()); if (exe_path_len < 0) { std::ce.

2021-10-03 16:22:57 478

空空如也

空空如也

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

TA关注的人

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