Cpp
文章平均质量分 57
樱满无门
这个作者很懒,什么都没留下…
展开
-
C++学习笔记十二
C++学习笔记十二pair的使用头文件:utility创建:pair<T1, T2> p1;pair<T1, T2> p2(v1, v2);pair<T1, T2> p3 = p2;p1 = make_pair(v3, v4);操作:// 赋值p3 = p1;// 访问元素p1.firstp1.second// 使用tie获取std::tie(v1, v2) = p1;staticstatic变量static变量只会被初始化一次因原创 2021-03-23 14:27:29 · 92 阅读 · 0 评论 -
C++学习笔记十一
C++学习笔记十一lambda函数lambda函数的作用:作为回调函数的值,减少不必要的封装lambda通过创建一个小类来实现,一个lambda函数就是该类的一个实例。函数对象能维护状态,但是开销大;函数指针开销小,但是没有办法保存状态基本语法:[capture](parameters)mutable exception->return-type {body}capture:[]:不截取任何变量[&]:截取外部作用域内的所有变量并作为引用使用[=]:截取外部作用域原创 2021-03-22 16:28:32 · 74 阅读 · 0 评论 -
C++学习笔记十
C++学习笔记十推荐一个github的开源C++学习项目const顺序容器之关系操作符容器大小constconst 类型有类型检查const 类型默认为文件局部变量cont char* a:指向的变量不可修改值,指针值可改变char * const a:指针不可改变值(常指针),指向的变量值可变const char * const a:常指针、常变量常指针必须进行初始化const T &a:引用,不可变,增加函数效率(对对象使用)类中的const几项规则:con原创 2021-03-17 09:35:24 · 81 阅读 · 0 评论 -
C++学习笔记八
C++学习笔记八虚函数顺序容器迭代器虚函数关键字:virtual#include <iostream>using namespace std;class Parent{public: void func() { cout << "Parent" << endl; }};class Child: public Parent{public: void func() { cout << "child" <原创 2021-03-11 16:27:31 · 143 阅读 · 0 评论 -
杂谈——继承的研究(一)
继承的研究(一)我已经学到的继承是这么回事:派生类拥有父类的所有变量和方法因为还没有看C++深入理解对象模型或者之类的这种书,我也不想直接查资料,因此准备自己写几行代码进行实验现在我有这几个疑问当父类与子类变量同名的时候,怎么进行区分当父类与子类函数同名的时候,怎么进行处理当父类与子类函数和变量同名的时候,怎么进行处理父类与子类变量同名父类与子类变量同名也分成这几种情况,我将一一进行探讨父类public变量与子类public变量同名父类private变量与子类private变原创 2021-03-10 15:51:09 · 87 阅读 · 0 评论 -
C++ 学习笔记七
C++ 学习笔记七文件输入输出字符串流文件输入输出使用头文件fstream提供三种IO:ifstream、ofstream、fstreamfstream提供对同一个文件进行读写的功能新的操作:open、close文件流对象的使用定义自己的对象并绑定在需要的文件上两种使用方法:ifstream infile("inFileName");ofstream outfile("outFileName");ifstream infile;ofstream outfile;infil原创 2021-03-10 14:45:22 · 95 阅读 · 0 评论 -
杂谈——对C++对象的研究
杂谈——对C++对象的研究先看这么一段代码#include <iostream>using namespace std;static int times = 0;class Test{ public: Test(): id(times ++) { cout << "create " << id << endl; } ~Test() { cout << "destroy " <<原创 2021-03-09 13:41:13 · 88 阅读 · 0 评论 -
建立一个现代Qt窗口应用
建立一个现代Qt窗口应用在这一篇文章中,我们将建立一个现代窗口应用,它包括菜单状态栏工具栏可编辑的文本区域建立我们使用QMainWindow来建立程序QMainWindow与QWidge的区别QMainWindow只能作为顶层窗口使用,QWidge既可以作为顶层窗口、也可以嵌入到别的部件里QMainWindow已经有了自己的布局,不能再设置布局,QWidge没有布局继承自QWidget的类没有办法创建菜单栏等不用勾选Generate form,我们使用纯代码进行构建既原创 2021-03-06 18:36:45 · 193 阅读 · 0 评论 -
C++学习笔记六
C++学习笔记六标准库的栈、队列、双向队列IO库的条件状态输出缓冲区的管理栈、队列、双向队列栈使用的头文件:#include<stack>是一个容器使用的方法:empty(),判断是否为空size(),返回元素个数top(),返回栈顶元素,不删除pop(),删除栈顶元素,不返回push(),压入栈顶标准库的栈是基于数组的队列和栈类似。使用头文件:#include<queue>双向队列优化了的双向队列,向两端插入删除开销小,支持[]操作符,但原创 2021-03-05 22:42:36 · 64 阅读 · 0 评论 -
Cpp学习笔记五
Cpp学习笔记五反向迭代重载函数函数指针面向对象的标准库反向迭代:rbegin, rend反转一个字符串的几种方法:原地反转,reverse(s.begin(), s.end())赋值,s2.assign(s.rbegin(), s.rend())重载函数同一个作用域的两个函数,名字相同、形参表不同,称之为重载函数重载函数和重复声明的区别:主要是形参表不同形参和const形参在使用非引用形参时并无不同,在使用引用形参或者指针时,有所区别不要过度使用重载功能在C++中,名原创 2021-03-03 20:31:46 · 126 阅读 · 1 评论 -
Cpp学习笔记四
C++学习笔记四一览:自动对象、静态局部对象内联函数类的成员函数、构造函数自动对象、静态局部对象自动对象:只有当定义它的函数被调用时才存在的对象称之为自动对象自动对象,包括形参,都在定义它们的块语句结束时撤销静态局部对象:就是C语言里面的static变量内联函数使用方法:加上inline关键字优点:避免函数调用产生的开销内联函数应当在头文件中定义缺点:不好debug成员函数成员函数的函数原型必须在类中定义成员函数的函数体既可以在类中定义也可以在类外定义成员函数的定义类原创 2021-02-24 19:02:09 · 71 阅读 · 0 评论 -
Cpp学习笔记三
Cpp学习笔记三try语句函数参数函数返回值生命期try语句try语句用于处理程序异常使用throw抛出异常,在try语句块中出现的异常使用 catch进行捕获抛出异常使用throw表达式抛出异常例如:throw runtime_error("message")来抛出一个异常每个标准库的异常类都有一个名为what的函数,返回C风格字符串try语句块语法:try{ ...}catch(...){ ...}抛出一个异常时,首先搜寻抛出异常的函数若原创 2021-01-19 11:14:51 · 117 阅读 · 0 评论 -
C++学习笔记二
C++学习笔记二迭代器bitset数组、指针迭代器学过python的人应该知道啥是迭代器C++中的迭代器是一种检查容器内的元素并且进行遍历的数据结构类型vector<int>::iterator iter;定义了一个迭代器。begin容器使用该函数返回一个从前到后的迭代器end容器使用该函数返回最后一个元素后面的元素若容器为空,则v.begin() == v.end()自增操作使用*iter操作获取迭代器指向的元素(不就是指针)使用++原创 2021-01-11 13:58:51 · 59 阅读 · 0 评论 -
C++学习笔记一
本系列笔记假设你熟练使用C语言C++学习笔记一(待续)输入输出C++特有的关键字string输入输出输入输出包含标准IO库:iostream其中输入符cin与输出符cout、endl等均包含在标准命名空间中例如输入两个数字,输出他们的乘积:#include <iostream>int main(){ int a, b; std::cin >> a >> b; std::cout << a * b << std::e原创 2021-01-08 23:45:17 · 80 阅读 · 0 评论