摘要: 1、越界检查a[2] 数组不会检查越界,vector会检查越界 2、容器中不能存放引用vector, vector<int*>,vector<int&>(这种情况不可以) 引用是个别名,不是对象,不是对象不能往vector中放 3、比较少见的几种创建方式vector a(5, -1); // 初始化 阅读全文
posted @ 2020-06-07 12:26 min_zhi 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 一、string对象操作string str1、str.c_str() 返回const char* 2、两个字符串不能挨着相加 "abc" + "de" // 错误, // 因为两个字符串直接相加,不知道得到的是什么类型,会导致编译错误; "abc" + s + "de" //正确, // 其中s 阅读全文
posted @ 2020-06-07 11:54 min_zhi 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 1、const char * p p指向的东西,不能通过p来修改,其指向的内容可以通过其他的指针来修改 char str[] = "hello"; const char* p = str; p[0] = 's'; // 错误,不能通过const char* 指针来修改其指向的值 str[0] = ' 阅读全文
posted @ 2020-06-07 11:51 min_zhi 阅读(2838) 评论(0) 推荐(0) 编辑
摘要: 小知识点:1、strcpy 和 strcpy_s(1)strcpy(char* point, char const* charValue)将 charValue 的值往 point 指向的内存区域拷贝,如果内存不够,会将溢出的部分继续往后面拷,会导致其他的内存区域被覆盖,可能引起程序不定时崩溃(2) 阅读全文
posted @ 2020-06-07 11:41 min_zhi 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 定义: 在函数定义(注意不是函数声明)前加上 inline 关键字(1)编译器在编译阶段对 inline 函数进行处理,系统尝试将该函数的调用动作替换成函数本体,来提升性能。(2)inline 只是我们开发者对编译器的一个建议,编译器可以尝试去做,也可以不去做,取决于编译器的诊断功能,我们无法控制。 阅读全文
posted @ 2020-06-07 00:03 min_zhi 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 一、C++中内存大概分为5个区域(1)栈:函数内的局部变量存放的位置,编译器自动分配和释放(2)堆:new/malloc分配,delete/free 来释放,没有自己释放,只有等程序结束的时候系统才会回收(3)全局/静态存储区:存放全局和静态变量,程序结束时系统释放(4)常量存储区:例如常量字符串等 阅读全文
posted @ 2020-06-06 23:58 min_zhi 阅读(115) 评论(0) 推荐(0) 编辑