随笔分类 -  C++

上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页
摘要:1、什么是队列【queue】 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。 关于队列的基本操作方法: add():添加一个元素,若超出了度列的长度会直接抛出异常。 put():添加一个 阅读全文
posted @ 2019-06-12 22:56 朱小勇 阅读(1570) 评论(0) 推荐(0)
摘要:STL不是语法要点,而是工具,如果能解决问题,即使一点也不懂也没问题;如果能提供便利去编程,何乐而不为。 本文配合MFC的CString使用;map是键值对; 0、头文件 #include <memory>//stl没有.h 1、使用typedef类型定义 typedef std::map<CStr 阅读全文
posted @ 2019-06-03 14:11 朱小勇 阅读(478) 评论(0) 推荐(0)
摘要:一、thread 本着能用STL就不用其他库的原则,本文以c++11的std::thread作为接口开发。【VS2010不支持C++11的线程,VS2013支持】 根据我另一个帖子,线程函数只能是全局或者静态的。https://www.cnblogs.com/judes/p/5921104.html 阅读全文
posted @ 2019-05-14 17:10 朱小勇 阅读(1369) 评论(0) 推荐(0)
摘要:new一个类的时候,调用这个类的构造函数,然后在这个类的生命周期内可能会动态生成很多指向堆上的内存,所以应该在析构函数里回收这些内存; 当delete这个类的时候,会首先调用这个类的析构函数,即回收生命周期内的内存,然后再回收这个类对象在堆上的内存 阅读全文
posted @ 2019-05-09 11:35 朱小勇 阅读(1958) 评论(0) 推荐(0)
摘要:void fun(void **p) { *p =.. } void main() { byte* p = NULL; fun((void**)&p); } 其实就是二级指针 阅读全文
posted @ 2019-04-25 15:05 朱小勇 阅读(539) 评论(0) 推荐(0)
摘要:毕业以来也换了几份工作了,大部分在搞C++,做过上位机【MFC、QT、C#..】,做过纯C++后台【企业存储】。在某XX公司做纯C++时,真正摆脱了界面开发。以前没接触过的C++11也有所了解,不至于老牛啃南瓜无从下口。 在做过好几个MFC和QT的项目后,一直想接触C++的东西,可是没机会,就在网上 阅读全文
posted @ 2019-04-25 14:44 朱小勇 阅读(417) 评论(0) 推荐(0)
摘要:1、 vector所有的内存相关问题都可以归结于它的内存增长策略。vector有一个特点就是:内存空间只会增长不会减少。vector有两个函数,一个是capacity(),返回对象缓冲区(vector维护的内存空间)实际申请的空间大小,另一个size(),返回当前对象缓冲区存储数据的个数。对于vec 阅读全文
posted @ 2019-04-19 15:35 朱小勇 阅读(1125) 评论(0) 推荐(0)
摘要:1、作为迭代器 使用前: #include<string> #include<vector> int main() { std::vector<std::string> vs; for (std::vector<std::string>::iterator i = vs.begin(); i != 阅读全文
posted @ 2019-03-27 11:12 朱小勇 阅读(132) 评论(0) 推荐(0)
摘要:1、std::vector vector与数组类似,拥有一段连续的内存空间,并且起始地址不变。便于随机访问,时间复杂度为O(1),但因为内存空间是连续的,所以在进入插入和删除操作时,会造成内存块的拷贝,时间复杂度为O(n)。 此外,当数组内存空间不足,会采取扩容,通过重新申请一块更大的内存空间进行内 阅读全文
posted @ 2019-03-09 00:27 朱小勇 阅读(543) 评论(0) 推荐(0)
摘要:一、头文件 #include <memory> 二、独占智能指针unique_ptr 1、生成 //生成 1、创建空的 std::unique_ptr<int> ptr1; 2、通过指针创建 std::unique_ptr<Task> taskPtr(new iTask(22)); 3、通过make 阅读全文
posted @ 2019-03-05 11:16 朱小勇 阅读(284) 评论(0) 推荐(0)
摘要:隐式调用: int a =0; int b=1; Swap(a,b); 显示调用: int a=0; int b=1; Swap<int>(a,b); 也可以多类型的 阅读全文
posted @ 2019-01-06 22:22 朱小勇 阅读(238) 评论(0) 推荐(0)
摘要:#define SWAP(t,a,b) \ do{ \ t c = a; \ a = b; \ b = c; \ }while(0); void main() { ... 阅读全文
posted @ 2019-01-06 21:20 朱小勇 阅读(923) 评论(0) 推荐(0)
摘要:1、代码 2、分析 argc:代码参数个数 argv:二级指针,很多个字符串,这里代表参数列表3、分析 这个代码最终被编译成exe,打开cmd,进入其路径:name.exe 参数1 参数2... 注意第0个参数是程序的名字,所以经常在代码里写:if(参数1==“”)。。。 阅读全文
posted @ 2018-11-18 15:09 朱小勇 阅读(432) 评论(0) 推荐(0)
摘要:1、参数加const:int fun(const int a) a在函数里不可被修改 2、函数前加const:const int* const fun() 这种一般是返回的指针或者是引用,加const是规定返回值不可被修改 3、函数后加const:int fun()const 这个函数不能访问类中所 阅读全文
posted @ 2018-10-12 14:38 朱小勇 阅读(3179) 评论(0) 推荐(0)
摘要:是释放指针所指向的内存,而不是删除指针本身 阅读全文
posted @ 2018-10-12 11:53 朱小勇 阅读(364) 评论(0) 推荐(0)
摘要:头文件: 源文件: 使用: 阅读全文
posted @ 2018-10-11 23:21 朱小勇 阅读(621) 评论(0) 推荐(0)
摘要:如上:class B就是前置声明,因为在A中使用了B,所以要先声明 阅读全文
posted @ 2018-08-29 11:18 朱小勇 阅读(257) 评论(0) 推荐(0)
摘要:#define MIN(a,b) (a<b ? a : b) #define MIN(a,b) (a>b ? a : b) 阅读全文
posted @ 2018-07-27 10:49 朱小勇 阅读(295) 评论(0) 推荐(0)
摘要:1、现象 经常看到有些代码在delete之后赋值为null 2、原因 C++标准规定:delete空指针是合法的,没有副作用。 所以我们在Delete指针后赋值为NULL或0是个好习惯。对一个非空指针delete后,若没有赋NULL,若再次delete的话,会报错 阅读全文
posted @ 2018-07-24 16:24 朱小勇 阅读(733) 评论(0) 推荐(0)
摘要:一、什么匿名对象 Class A{ .... }; A* a = new A;//a是对象 new A;//在内存中生成的对象没有任何指针或者引用指向,这就是匿名对象,匿名对象在作用块结束之后就没gc回收 二、匿名对象的使用 以QTableWidget举例,给某个item设置内容,用的是: 第三个参 阅读全文
posted @ 2018-07-20 17:49 朱小勇 阅读(1148) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页