编程基础——C++

一、string相关

1.字符串转换问题

字符串到数字 std::stoi() 

数字到字符串 std::to_string()

2.字符串流处理

数据流读:istringstream >> : 读时候以" "为分割符

数据流写:ostringstream  << 

    string str="i an a boy";  
    istringstream is(str);  
    string s;  
    while(is>>s)  
    {  
        cout<<s<<endl;  
    }  

二、类概念相关

1.空类的大小(sizeof) = 1,声明类型的实例时,必须在内存中占有一定的内存

三、内存分配相关

1.malloc()

1)内存是块状链表形式:头部包括自身指针、下一块指针、内存大小

2)申请:从空闲的链表中拿到,若大小合适直接从空闲链表中取下;若大小太大,则根据申请大小修改内存头部一部分留在空闲链表,一部分拿下来

3)释放:扫描空闲链表寻找合适的位置,若存在相邻的空闲块,则进行合并,减少碎片

四、关键字

1.sizeof() // 求类型大小的关键字,可以省略括号

1)数组:int[10] a; -> sizeof(a) // 10*4 = 40

2)其他为类型的字节大小 int *a; -> sizeof(a) // 4

3)若数组作为函数的参数进行传参时,数组会自动退化为指针

int GetSize(int data[]) { sizeof(data); } // 此时求的是指针的大小

五、C++11

1.NULL与nullptr

NULL在编译时会被替换为0,因此会导致函数默认值的多义;

nullptr仅表示空指针

猜你喜欢

转载自blog.csdn.net/copy_07/article/details/81451157