![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习
DUANDAUNNN
这个作者很懒,什么都没留下…
展开
-
【C++笔记】二十、标准模板库(STL)(下)
1.函数对象#include <iostream>#include <list>using namespace std;bool removeFunction(int n){ if(n < 4) { return true; // 删除比4小的值 } else { return false; }}void out(int n){ cout << n <原创 2021-08-20 16:02:20 · 64 阅读 · 0 评论 -
【C++笔记】十九、标准模板库(STL)(中)
1.STL中的容器 序列容器 vector,(优点)允许容器元素随机存取,允许通过数组的方式引用容器中的元素值。(缺点)但在容器的中间部位插入或删除容器的元素的代价是比较大的。list,基于双向链表的,要定位某一元素的话,就需要从首节点一个一个遍历,直到遍历到目标node为止。优缺点和vector正好相反deque,双端队列forward_list(C++11),基于单向链表queue,队列,先入先出priority_queue,优先队列,总是将队列中最大的值放到队首sta原创 2021-08-20 15:06:31 · 207 阅读 · 0 评论 -
【C++笔记】十八、标准模板库(STL)(上)
1.标准模板库(STL)概述 STL:Standard template library,包含了容器、迭代器、函数对象和算法。容器与数组类似,可以存储若干个值容器中每一个值的类型都是相同的常用的容器:vector、valarray迭代器可以用来遍历容器中的值函数对象类似于函数的对象,可以是类对象或函数指针算法排序查找2.迭代器(Iterator)基础#include <iostream>#include <vector>usi..原创 2021-08-19 22:01:34 · 90 阅读 · 0 评论 -
【C++笔记】十七、string类与智能指针
1.string类的构造方法#include <iostream>using namespace std;int main(int argc, const char * argv[]) { // 模板类string的构造方法 // 1. 没有参数的构造方法 string str1; str1 = "超人"; cout << "str1 = " << str1 << endl; /原创 2021-08-19 10:34:23 · 941 阅读 · 0 评论 -
【C++笔记】十六、类型识别和转换
1.类型识别:dynamic_cast运算符#include <iostream>using namespace std;class Biology{public: // (涉及到多态问题)父类必须至少有一个虚方法,否则无法使用dynamic_cast进行类型转换 virtual void process() { }};class Person:public Biology{public: int code =原创 2021-08-18 21:15:04 · 88 阅读 · 0 评论 -
【C++笔记】十五、异常处理
1.返回错误码与abort函数#include <iostream>using namespace std;int factorial(int n) // 计算阶乘{ if(n < 0) { cout << "n不能小于0" << endl; abort(); // return -1; // 返回错误码 } if(n == 0) { return原创 2021-08-18 16:35:43 · 126 阅读 · 0 评论 -
【C++笔记】十四、友元类和嵌套类
1.友元类#include <iostream>using namespace std;class TV // 电视机{private: bool mState = false; // true:开 false:关 int mProgramIndex = 0; // 节目索引public: friend class RemoteController; // 友元类,友元类可以访问当前类的私有内容 bool getState();原创 2021-08-17 17:32:30 · 185 阅读 · 0 评论 -
【C++笔记】十三、代码重用(下)
1.模板类#include <iostream>using namespace std;typedef int Item;class Stack{private: enum{MAX = 20}; // 栈的最大元素个数 Item mItems[MAX]; // 存储栈的元素的数组 int mTop; // 指针,指向栈顶待写入数据的位置,而不是栈顶的元素的位置public: Stack(); bool isEmpty() co原创 2021-08-17 10:11:32 · 111 阅读 · 0 评论 -
【C++笔记】十三、代码重用(上)
1.valarray模板类#include <iostream>#include <valarray>using namespace std;int main(int argc, const char * argv[]) { // valarray模板类 valarray<int> array1{20,30,40}; cout << array1.size() << endl; // 3 cout &原创 2021-08-16 16:04:25 · 232 阅读 · 0 评论 -
【C++笔记】十二、类的继承
1.类的继承#include <iostream>using namespace std;class BaseClass{protected: int mCode = 20;public: int getCode();};int BaseClass::getCode(){ return mCode;}class MyClass : public BaseClass //继承写法,MyClass可以使用BaseClass中public和prot原创 2021-08-15 17:48:26 · 95 阅读 · 0 评论 -
【C++笔记】十一、类的高级技术
1.操作符重载:赋予某一类型,可以使用某一操作符的能力#include <iostream>using namespace std;class MyClass{private: int mValue;public: int getValue(); // 声明方法 MyClass(int value); // 声明构造方法};int MyClass::getValue(){ return mValue;}MyClass::MyCl原创 2021-08-15 11:02:14 · 192 阅读 · 0 评论 -
【C++笔记】十、类和对象
1.类定义和成员访问控制main.cpp#include <iostream>#include "Header.h"using namespace std;class MyClass1{private: int mCode = 100;public: string name = "Bill"; int value = mCode;};int main(int argc, const char * argv[]) { // 类的定义原创 2021-08-13 20:29:45 · 112 阅读 · 0 评论 -
【C++笔记】九、编译、链接和命名空间
1.#include头文件的原理和规则main.cpp :#include <iostream>// 引用自定义头文件,必须用双引号,引用系统的头文件,可以用尖括号,也可以用双引号// 用<>只会在系统目录中索引,不会在当前目录索引,双引号则首先在当前目录查找,若找不到,再去系统目录找#include "fun.h" // 为了调用getPersonName#include "Header.h" // 若Header.h里面include了fun.h,则f原创 2021-08-13 10:40:33 · 268 阅读 · 0 评论 -
【C++笔记】八、函数深度探索
1.内联函数(inline)#include <iostream>using namespace std;void inline fun(int a, int b); /* 每调用一次内联函数,就会将该函数复制一份,调用次数多的话,会比较占用内存空间,所以内联函数的代码量一般不大 */// inline void fun(int a, int b); // 也可以#define FUN(a,b) do{cout << a+b << endl;cout原创 2021-08-09 13:10:45 · 184 阅读 · 0 评论 -
【C++笔记】七、函数基础
1.函数基础2.函数参数与值传递原创 2021-07-26 12:54:38 · 70 阅读 · 0 评论 -
【C++笔记】六、条件语句和逻辑运算符
1.条件语句if和do...while(0)形式的宏1.1 if// 如果条件中使用了数值类型的变量,建议将变量写在后面,e.g. 10 == i int i = 100; if(i = 10) // if 条件永远为真 { cout << "i == 10" << endl; } if(i == 10) { cout << "i == 10" << en原创 2021-07-09 10:06:53 · 270 阅读 · 0 评论 -
【C++笔记】五、循环语句
for循环原创 2021-07-08 10:03:04 · 235 阅读 · 0 评论 -
【C++笔记】四、复杂数据类型(下)
18.原创 2021-07-06 09:58:40 · 204 阅读 · 0 评论 -
【C++笔记】三、复杂数据类型(上)
1.数组基础1.1 数组的定义// typeName arrayName[arraySize] long productIds[199];1.2 数组的优点和缺点#include <iostream>using namespace std;int main(int argc, const char * argv[]){ long productIds[199];//优点:可以随意获取数组元素 productIds[0] = 20; p原创 2021-07-01 11:23:44 · 203 阅读 · 0 评论 -
【C++笔记】二、简单数据类型与算数运算符
基础数据类型:整形有符号整型short:2字节 16位 -2^15 -- 2^15 - 1(有一位是符号位) -32768 -- 32767int: 4字节 32位 -2^31 -- 2^31 - 1long: 如果是32位的系统下:long = int,32位,如果是64位系统下,long:64位 ,long long:64位-2^63 -- 2^63 - 1无符号整型unsigned short: 0 -- 2^16 - 1例如:100000000000000...原创 2021-05-19 10:12:00 · 952 阅读 · 0 评论 -
【C++笔记】一、C++基础
目录main函数:main函数的命名:main函数的返回值:C++ main函数中参数argc和argv:函数参数与voidC++中的注释第一个遇到的预编译指令:变量的命名规则变量的命名规范:1.大驼峰,Pascal2.小驼峰3.匈牙利命名法4.用下划线的命名法main函数:main函数的命名: C/C++可执行程序的入口函数只能是main,有的library并不要求这个。main函数的返回值: 对于C++来说,main函数的返回值..原创 2021-05-19 10:04:17 · 73 阅读 · 0 评论