那年的日记本

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. 命名空间

  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的字母右移一个位置,将腾出来的位置放置新的字符串)

}

  1. case (value) 中的value只能是整数类型(int,short)
  2. 中文字符占2个字节,在指针移动的时候,注意是加2,而不是++
  3. 注意变量的初始化的位置,如果在循环体里进行初始化,那么将意味着每次循环都会进行一次初始化。
  4. 下表访问字符串变量中的值的时候,返回值是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、条件语句注释情况的分类。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值