C++
致远记录
这个作者很懒,什么都没留下…
展开
-
C++ 顺序容器的一些记录
C++ 顺序容器容器:按照元素存储到容器中以及访问方式的差异,容器分为顺序容器与关联容器。顺序容器也称为序列式容器。C++本身内置了一个序列式容器array(数组),STL另外提供了vector,list,forward_list,deque,stack,queue,priority-queue,string等等序列式容器。所有的容器都是基于模板实现的,因为容器必须保证能装得下各种各样的类型。其中,stack,queue都是基于deque来实现的,priority-queue基于heap来实现,从技术上原创 2020-06-22 17:20:39 · 175 阅读 · 0 评论 -
C++ size_type和size_t
在学习类的时候看到定义using ScreenIndex = vector<Screen<::size_type;//含义为窗口中每个屏幕的编号,好奇为什么把vector的位置定义为size_type型,之前有了解到size_type是在string中,故查资料一、size_type由string类类型和vector类类型定义的类型,用以保存任意string对象或vector对象的长度,标准库类型将size_type定义为unsigned类型string抽象意义是字符串, size()的抽转载 2020-06-04 21:06:51 · 324 阅读 · 0 评论 -
c++ 不能依赖合成的默认构造函数——变量初始化
不能依赖合成的默认构造函数【1】编译器只有在没有发现任何构造函数的情况下才会合成默认构造函数,一旦我们定义了其他的构造函数,那么除非再定义一个默认构造函数,否则类将没有默认构造函数。-【2】 块中的内置类型或复合类型(数组,指针)如果默认初始化,则值会为未定义,将导致错误。除非类内的这些成员全部被赋予了类内初始值。【 3】有时,编译器不能为某些类合成默认的构造函数。 如果类内包含一个其他类类型的成员,而且该成员的类型没有默认构造函数,则无法初始化。此时我们必须自定义构造函数,否则将没有可用的默认构造转载 2020-06-02 20:08:46 · 586 阅读 · 0 评论 -
c++ return返回值与内存
在学习函数的时候,我发现有些函数返回一个变量,有些返回引用,有些返回指向当前对象的指针,我深入挖掘,发现这牵扯到内存相关的东西1.内存如下图:32位X86机器的内存布局图,内存主要分为栈、堆、BSS段、数据段、代码段5个段。...转载 2020-06-02 16:14:28 · 2477 阅读 · 0 评论 -
C++ 指针与引用
指针和引用1.定义C++primer中对对象的定义:对象是指一块能存储数据并具有某种类型的内存空间一个对象a,它有值和地址&a,运行程序时,计算机会为该对象分配存储空间,来存储该对象的值,我们通过该对象的地址,来访问存储空间中的值指针p也是对象,它同样有地址&p和存储的值p,只不过,p存储的数据类型是数据的地址。如果我们要以p中存储的数据为地址,来访问对象的值,则要在p前加解引用操作符"",即p。对象有常量(const)和变量之分,既然指针本身是对象,那么指针所存储的地址也有常量和变转载 2020-05-31 14:43:20 · 147 阅读 · 0 评论 -
C++ 创建类对象
创建类对象直接初始化- class Student LiLei;- Student LiLei;使用对象指针Student stu;Student *pStu = &stu;上面代码中创建的对象 stu 在栈上分配内存,需要使用&获取它的地址,pStu 是一个指针,它指向 Student 类型的数据,也就是通过 Student 创建出来的对象。Student *pStu = new Student;在栈上创建出来的对象都有一个名字,比如 stu,使用指针指向它转载 2020-05-29 17:08:09 · 952 阅读 · 0 评论 -
C++ const的那些事
const的那些事1.顶层const(top-level const ) 与底层(low-level const )指针本身是一个对象,因为,指针实际对应着内存单元的一段存储空间,然而,指针所指向的也是一个数据对象,因此,指针是一个常量与指针所指向的是一个常量是两个完全不同的概念, 顶层 const 表示的是 指针本身是一个常量, 底层 const 表示的是 指针所指的对象是一个常量。更一般情况下, 顶层 const 可以表示任意对象是一个常量,这对于算术类型、类、指针等任何数据类型都是成立的, 底层转载 2020-05-29 16:57:54 · 192 阅读 · 0 评论 -
C++ return *this 和 return this区别
return *this 和 return this区别return *this返回的是当前对象的克隆或者本身(若返回类型为A, 则是克隆, 若返回类型为A&, 则是本身 )。return this返回当前对象的地址(指向当前对象的指针)#include <iostream>using namespace std;class A{public: int x; //返回当前对象本身 A& get() { return *this; } //返回当原创 2020-05-28 22:22:13 · 637 阅读 · 0 评论