Base64是一种将二进制转为可打印字符的编码方法,主要用于邮件传输.Base64将64个字符(A-Z,a-z,0-9,+,/)作为基本字符集,把所有符号转换为这个字符集中的字符. 编码: 编码每次将3字节转为4字节,若输入字节数不是3的倍数,则在末尾填充0字节使其长度为3的倍数.对于3字节,每次取出6位,并在前面添加2位0构成一个字节,以此字节为下标查找Base64码表(如下图)输出对应字符.每次将3字节转为4字节(3*8=4*6),直至得到整个输入串的编码结果.最后,若之前在输入中添加了1个…
C++中临时对象又称无名对象.临时对象主要出现在如下场景. 1.建立一个没有命名的非堆(non-heap)对象,也就是无名对象时,会产生临时对象. Integer inte= Integer(5); //用无名临时对象初始化一个对象 2.构造函数作为隐式类型转换函数时,会创建临时对象,以值的方式传递,用作实参传递给函数. 例: class Integer { public: Integer(int i):m_val(i){} ~Integer(){} private: int m_val; };…
Windows7下QT开法环境常见搭配方法有两种. 第一种是:QT Creator+QT SDK: 第二种是:VS+qt-vs-addin+QT SDK: 以上两种均可,所需文件见QT社区,QT下载地址:http://download.qt.io/archive. 第一种,鄙人下载的是:qt-creator-opensource-windows-x86-3.3.0.exe + qt-opensource-windows-x86-mingw491_opengl-5.4.0.exe. 第二种:鄙人下…
#include <cstdio> #include <iostream> #include <cstring> using namespace std; const int INF = 0x3fffffff; int g[1005][1005]; int m; void Floyd() { int i, j, k; for (k=1;k<=m;k++) { for (i=1;i<=m;i++) { for (j=1;j<=m;j++) { if (g…
#include <cstdio> #include <iostream> #include <cstring> using namespace std; const int INF = 0x3fffffff; int g[1005][1005]; int m; int Dijkstra(int s,int t) { bool visit[1005]; int dis[1005]; for(int i = 1; i <= m; ++i) { visit[i] =…
原来使用Motion在树莓派上跑1280x720分辨率的三颗摄像头.占用内存太严重,关闭诸多功能之后还是不行.故转战mjpg-streamer. 首先安装所需软件 sudo apt-get install subversion sudo apt-get install libv4l-dev sudo apt-get install libjpeg8-dev svn下载软件到本地 svn co ttps://mjpg-streamer.svn.sourceforge.net/svnroot/mjp…
动态链接库:我们经常把常用的代码制作成一个可执行模块供其他可执行文件调用,这样的模块称为链接库,分为动态链接库和静态链接库. 对于静态链接库,LIB包含具体实现代码且会被包含进EXE中,导致文件过大,浪费磁盘和内存: 对于动态链接库,DLL不必被包含在最终的EXE中,EXE执行时可以动态地装载和卸载DLL文件. 导出函数 将函数声明为导出函数有两种方式: 1. 在函数声明上加上_declspec(dllexport): 如:extern "C" int__declspec(dllexp…
利用线性表实现队列,为了有效利用空间,将其设计为循环结构,防止假溢出:牺牲一个存储单元以区分队空.队满. 设front队头,rear队尾,N为顺序表大小 队空:rear==front 队满:(rear+1)%N==front #include<stdio.h> #define Elemtype int #define N 100 struct Queue { Elemtype data[N]; int front,rear; }; void initQueue(Queue &Q) {…
标兵结点(头结点)是在链表中的第一个结点,不存放数据,仅仅是个标记 利用标兵结点可以简化代码.下面实现双向链表中的按值删除元素的函数,分别实现 带标兵结点和不带标兵结点两版本,对比可见标兵结点的好处. 结点声明如下: struct Node { int value; Node *prev; Node *next; } int del_doublelist(Node*&h,int v)//不带标兵结点 { Node*p=h; while(p!=NULL&&p->value!=v…
本程序实现了egrep命令,首先将正则表达式转换为NFA,并实现模拟NFA的算法. 本程序使用flex实现词法分析,bison实现语法分析 若给定的一行字符串中存在一个字串能被该NFA接受,则输出整行. 所用语法如下: S-->S|S    |SS    |S*    |(S) |a bison程序: %{ #include <string> #include <iostream> #include <fstream> #include <sstream&g…