【C++编程学习笔记 week 6】教程文章相关的互联网学习教程文章

c++11学习笔记(8)【代码】

(1)新标准引入了3个新成员,emplace_front, emplace和emplace_back,这些操作构造而不是拷贝元素,这些操作分别对应push_front,push,push_back,允许我们将元素放置在容器头部,一个指定位置之前,容器尾部。(2)当调用push或insert成员函数时,我们将元素类型的对象传递给它们,这些对象被拷贝到容器中。而当我们调用一个emplace成员函数时,则是将参数传递给元素类型的构造函数。emplace成员使用这些参数在容器管理的内存空间...

C++学习笔记 (四)模板【图】

一.函数模板 c++的一个编程思想就是面向对象,另一种就是泛型编程,主要利用的就是模板。 有两种,函数模板与类模板。 1.函数模板基本语法 函数模板的作用:先建立一个通用函数,其返回值类型与参数类型都不具体制定,而是用一个虚拟的类型表示。 2.函数模板注意事项 举例: 3.普通函数与函数模板的区别 4.普通函数与函数模板的调用规则注:既然提供了函数模板,最好就不要提供普通函数,否则容易出现二义性。 举...

C++学习笔记 (五)标准模板库STL之容器【图】

2.迭代器种类一.string容器 (一)vector 1.容器之vector 2.vector容器中存放自定义数据类型 3.vector容器嵌套容器 (二)string 1.string容器 2.string赋值操作 3.字符串拼接 4.字符串查找与替换 5.string字符串比较 6.string字符存取 7.string插入和删除 8.string子串 二.vector容器 1.vector数据结构与数组非常相似,也称单端数组。不同的是,数组是静态空间,vector可以是动态扩展(动态扩展不是在原空间...

C++学习笔记 (六)标准模板库STL之函数对象(仿函数)【图】

1.函数对象(仿函数) 2.谓词(1)一元谓词 (2)二元谓词 3.内建函数对象1)算数仿函数 2)关系仿函数 3)逻辑仿函数

C++学习笔记1-const前缀【代码】【图】

C++学习笔记1|const前缀、static前缀 1. 使用方法 const int a = 10;int const a = 10;这二者是等价的。 2. const的含义 const关键字是constant的缩写,意思是不变的。用const定义的变量,具有了常量的部分属性,但是其本质依然是变量。 上面两条语句都将变量a定义成了const类型的变量。当变量被定义成const类型后,最明显的一个特征就是不允许再对他进行赋值了,如果赋值,编译器会报错。 int main(void){const int a = 10;a = 2;...

c++11学习笔记(5)【代码】

(1)deque双端队列是一个更为复杂的数据结构,与string和vector类似,deque支持快速随机访问,并且也是在deque的中间位置添加或删除元素的代价很高。但是,在deque的两端添加或删除元素都是很快的,和list或forward_list的速度相当。(2)forward_list和array是新c++标准增加的类型。和内置数组相比,array是一种更安全更容易使用的数组类型,其大小和内置类型一样是固定的,不支持添加或删除元素以及改变容器大小的操作。forward...

C++-类的学习笔记(五)【代码】

正文 昨天讲了this指针,今天讲对象数组。这个就是很类似C语言的结构体数组。学习新东西的时候,要学会往之前学过的东西对比一下。用我高中老师的一句话就是把未知的变成已知的。 对象数组的存在。看代码 #include <iostream> using namespace std; const int N=3; class Line{public:int a,b; };int main( ) {Line line[N]={Line(),Line()};//这个构造函数需要自己写,我没写用的系统的构造函数,这样初始化。和其他语言很相似。r...

C++学习笔记(一):变量、常量和命名规则【代码】

变量 变量的意义:方便管理内存空间 变量语法:数据类型 变量名 = 变量初始值; 常量 常量的意义:用于记录程序中不可更改的数据 常量的语法:宏常量:#define 常量名 常量值 const 数据类型 常量名 = 常量值; const 和define 定义常量的区别: define 在编译的预处理阶段起作用,const在编译运行的时候起作用。 define无脑进行替换,不进行类型检查,const进行类型检查。 define占用代码段的空间,有多少使用define的地方就有...

C++学习笔记:vector容器【代码】

1 基本 vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,使用时候需要包含: #include <vector>2 常用操作 初始化 vector<int> a(10); //定义了10个整型元素的向量,没有给出初值,其值是不确定的。 vector<int> a(10,1); //定义了10个整型元素的向量,初始化的值为1 vector<int> a(b); //用b向量来创建a向量,b也为vector类型 vector<int> a(b.be...

学习笔记-C++【代码】【图】

题目:声明一个基类BaseClass,从它派生出类DerivedClass,BaseClass有成员函数fn1()和fn2(),fn1()是虚函数,DerivedClass也有成员函数fn1()和fn2(),在主函数中声明一个DerivedClass的对象,分别用BaseClass和DerivedClass的指针指向DerivedClass的对象,并通过指针调用fn1()和fn2()。并画出类图。 1 #include<iostream>2 using namespace std;3 //声明一个基类BaseClass4 //虚函数为fn1()5 class BaseClass6 {7 public:8 virtu...

【C++学习笔记】运算符汇总【代码】

自增自减运算符 自增运算符 ++ 会把操作数加 1,自减运算符 – 会把操作数减 1。无论是自增运算符还是自减运算符,都可以放在操作数的前面(前缀)++i或后面(后缀)–i前缀形式与后缀形式之间有一点不同。如果使用前缀形式,则会在表达式计算之前完成自增或自减,先自增(自减)后运算。如果使用后缀形式,则会在表达式计算之后完成自增或自减,先运算后自增(自减)。 sizeof运算符 sizeof 是一个关键字,它是一个编译时运算符,...

Learn C++学习笔记:第十二章—动态转换 dynamic_cast【代码】

多态允许我们把指向基类的指针可以访问派生类的内容,但是假如我们想访问的派生类中的函数不是重写的基类的虚函数,而是派生类自己的函数呢? 上例子更清楚明白一点: #include <iostream> #include <string>class Base { protected:int m_value;public:Base(int value): m_value(value){}virtual ~Base() {} };class Derived : public Base { protected:std::string m_name;public:Derived(int value, std::string name): Base(va...

C++学习笔记——七大基础知识【图】

C++七大基础知识 inline内联函数缺省参数函数const函数重载强制类型转换动态申请内存引用& 一、inline内联函数 inline是一个关键字 作用:可以代替宏定义二、 缺省参数函数 函数声明时就赋值 注意:只能从右向左依次赋值三、 const const是一个关键字 作用:限定只能读,不能更改值四、函数重载 作用:允许函数重名,与函数参数类型和个数有关,与返回值类型无关 注意:当与缺省参数函数一起使用时,要防止产生二义性五、强制类型...

C++学习笔记(一)【代码】

记录自己学习C++的过程,编译环境Visual Studio 2019目录一 一.C++语言概述二.第一个C++程序1.文件扩展名2.头文件3.标准输入、输出 三.名字空间(命名空间)1.名字空间作用2.定义名字空间3.名字空间成员的使用4.全局作用域和无名名字空间(了解)5.名字空间嵌套(了解)6.名字空间合并(了解) 四.C++的结构体、联合体和枚举1.C++结构体2.C++联合体3.枚举 五.字符串1.C语言中字符串2.C++中string类型 练习 一.C++语言概述 1.C和C++ ①...

C++学习笔记之 异常【代码】

异常 目录异常基本概念语法捕获自定义异常异常的接口声明栈解旋异常变量的生命周期异常的多态使用演示标准异常 基本概念异常处理就是处理程序中的错误语法 #include <iostream>using namespace std;int myDivision(int a,int b) {if (b == 0) {// return -1;// 抛出异常throw -1;} else if (b < 0) {throw 3.14;}return a / b; }int main() {try {int ret = myDivision(10,-10);ret = myDivision(10,0);} catch (int a) {cout << "...