2015.7.29
*1. (Web)块结构(frame),分层结构,page的概念
*2. linux中的硬链接与软链接
*3. ln,find,locate命令
7.30
*1. Reentrancy:可重入的概念
*2. QVariant使用以及原理
*3. union共用体
*4. Unicode,UTF-8
*5. 信号与槽机制
-6. QNetworkAccessManager, QNetworkReply, QNetworkRequest
-7. HTTP头详解
-8. extern c的使用
+9. const修饰指针变量, 修饰函数: 函数的指针, 指针函数, const放在函数参数后面
7.31
*1. c++虚函数
*2. HTTP报文
-3. WebSocket握手
8.1
*1. CSS选择器
图解TCP/IP未来一周
-3. 代理
-4. 关于WebSocket的博客
-5. Socket, Socket5, 什么是socket通信, 都有哪些通信, socket通信与其他的通信有什么不同, 优劣.
*6. 自动代理脚本文件(PAC文件: Proxy Auto Configure)
-7. SNI(服务器名称指示: Server Name Indication)
-8. 证书——来自《图解HTTP》中的公钥与私钥
*9. SSL和TSL
8.2
*1. markdown
*2. bashscript
-3. 复习一周知识
8.3
*1. include搜索路径
*2. c++引用
{
引用即别名,可以做参数,可以做函数的返回值,操作引用等于操作原变量本身。
}
-3. 数组变量和指针的区别
*4. explicit关键字的作用:
{
在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。
explicit使用注意事项:
*
explicit 关键字只能用于类内部的构造函数声明上。
*
}
-5. 拷贝构造函数
*6. 转化构造函数
{
当一个构造函数只有一个参数,而且该参数又不是本类的const引用时,这种构造函数称为转换构造函数。
例如:
class Complex
{
protected:
double real,vir; //复数的实部和虚部
public:
Complex(double x)
{
real=x,vir=0;
}
};
转化构造函数的使用:
Complex t=5.0; //或Complex t(5.0);或Complex t=Complex(5.0);或Complex t=(Complex)5.0;
}
明天找老师询问一下这样做可不可行
8.4
*1. c++预处理器
*2. qt中的 QT_BEGAIN_NAMESAPCE 和 QT_END_NAMESAPCE
*3. qt中的 QT_OBJECT
{
定义QT_OBJECT,才能使用slots和signals
}
8.5
*1. 命名空间
- QMetaObject
8.6
-1. Q_OBJECT
*2. class声明 {
不完全类型只能以有限方式使用,不能定义该类型的对象
不完全类型只能用于定义指向该类型的指针及引用
用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数
}
*3. 计算机编码 http://blog.poxiao.me/p/unicode-character-encoding-conversion-in-cpp11/
8.7
*1. reinterpret_cast(reinterpret 重新解释): 强制类型转换符
8.8
-1. c++内存管理
-2. 整理计算机编码的笔记
*3. traits: http://www.2cto.com/kf/201208/149791.html
*4. 函数指针类型充当实参代入模板类
-5. tr1中的tr1::function
*6. template遇到struct {
struct里面定义了类型,需要用结构体名打点调用:
structName::defType i = value;
结构体中只允许有静态常数(static const int i = value;)和类型
}
*7. *template
*8. constexpr和inline
8.9
*1. 左值和右值:http://www.cnblogs.com/hujian/archive/2012/02/13/2348621.html
*2. 整理笔记
8.10
*1. volatile:加上后编译器会老老实实一步步编译,直接读取值,不会优化。
8.11
1. Fiasco (an implementation of the L4 kernel API).
9.2
*1. gith用法总结
*2. leetcode第三题:Search in Rotated Sorted Array
-3. 找关于dpi和dpe的资料
9.3
*1. static局部变量的引用是成立的。
*2. 归并排序解决 leetcode - 2.1.5
9.7
*1. unordered_map
[] 如果检索不到,会在最后插入一个新的**只有key没有value**的键。
find 返回iterator,如果检索不到返回最后一个键的下一个位置(即'm.end()')
at 检索不到抛出'out_of_range'异常
#include <iostream>
#include <stdexcept>
#include <unordered_map>
using namespace std;
int main(void)
{
unordered_map<int, bool> m = {
{ 5, true },
{ 6, true }
}
int i = 10;
try {
m.at(i);
} catch (const out_of_range& oor) {
cerr << "the key " << i << " not found." << endl;
}
}
2. const的对象只能使用const*修饰函数体**的成员函数
int funcName() const
{
//body
}
9.13
*1. g++默认不支持c++11,需要加上编译参数-std=c++0x
9.24
*1. vector的erase使用,注意如果参数为iterator,则调用后该iterator成为了野指针,用标签比较安全。
9.29
1. string中的函数参数pos的含义:代表下标,如果用数学方式表示则为:[pos, pos+len)。
{
exp1–erase:
string s = “123456”;
string res = s.erase(1, 2);
res is "1456"
exp2--add
string s = "123456";
string tar = s.insert(5, "0");
tar is "1234506"(将index=6的字母右移一个位置,将腾出来的位置放置新的字符串)
}
- case (value) 中的value只能是整数类型(int,short)
- 中文字符占2个字节,在指针移动的时候,注意是加2,而不是++
- 注意变量的初始化的位置,如果在循环体里进行初始化,那么将意味着每次循环都会进行一次初始化。
- 下表访问字符串变量中的值的时候,返回值是char,而不是char*
{
exp1–error
string s = “hello”;
if (“h” == s[0]) { //error, operand type is not compatible, char == char*
….
}
}
如果相匹配中文文字的时候可以使用如下的函数:
int campare(int pos, int len, const string &str);
10.12
代码注释:
1、变量名注释含义。
2、函数注释作用。
3、条件语句注释情况的分类。