C++语法:vector的使用

C++ grammar  c++

  

2020-07-15 03:43:28

【1】vector的创建与元素插入 【2】vector元素的访问 【3】vector的基本使用技巧 【4】vector的几个重要操作 【1】vector的创建与元素插入 注意点: 1、错误的赋值方式: 因为 points 还没有第一个元素,我们只能索引 vector 中已经存在的元素 2、错误的插入方式: 当我们用一个给定的大小定义一个vector 时,任何push_back操作都会增加元素数目。...

【C++ grammar】引用

C++ grammar  c++  指针

  

2020-10-02 05:54:22

1、引用就是另一个变量的别名 2、通过引用所做的读写操作实际上是作用与原变量上 引用方式: 在C中&是取地址,在C++中&放在一个变量的定义前,那就是引用 注意: 这种引用是错误的,被引用变量必须先定义 TIP: C++指针与引用符号应该靠近其类型而非名字 如: 引用作为函数参数: 引用可做函数参数,但调用时只需要传普通变量即可。 在被调函数中改变引用变量的值,则改变的是实参的值 ...

从堆栈的角度来说: 从堆栈的角度来说: 对象放在堆上,就要用指针,也就是对象指针->函数; 放在栈上,就对象.函数 那么如何判断对象放在堆上还是栈上? 从我的另一篇笔记【C++ grammar】C++简化内存模型可知: stack(栈)编译器自动分配内存(函数内部定义得局部变量、形参) 堆(Heap)一般由程序员分配释放 int *p ; char *p; 应该是在栈区分配 如果是这样 p=...

目录 1、类成员的就地初始化example 2、构造函数初始化 3、默认构造函数:Default Constructor 4、举例 5、成员的初始化方法的优先级 1、类成员的就地初始化example 2、构造函数初始化 A data field is an object type (Object in Object / Embedded Object) (类的数据域是一个对象类型,被称为对象中的对...

目录 1、常量表达式和constexpr关键字 2、断言与C++11的静态断言 1.1. assert : C语言的宏(Macro),运行时检测。 1.2. assert()依赖于NDEBUG 宏 1.3. assert 帮助调试解决逻辑bug (部分替代“断点/单步调试”) 2.1static_assert (C++11的静态断言 ) 2.2. 作用:编译时断言检查 2....

空指针 1.1. 0带来的二义性问题 C++03中,空指针使用“0”来表示。0既是一个常量整数,也是一个常量空指针。 C语言中,空指针使用(void *)0来表示 有时候,用“NULL”来表示空指针(一种可能的实现方式是#define NULL 0) 1.2. C++标准化委员会希望“空指针”是一个确定的东西。 C++11中引...

1、stack(栈) 编译器自动分配内存(函数内部定义得局部变量、形参) 2、堆(Heap) 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收(new和delete) 3、Global\Static(全局区、静态区) 1、全局变量和静态变量的存储是放在一块儿的 2、可以简单认为:程序启动全局/静态变量就在此处、程序结束释放 4、Constant(常量区) 可以理解为所有常量都放在一起...

目录 1、变量的作用域 1. 变量的作用域分类 2. Unary Scope Resolution (一元作用域解析运算符) 2、重载函数 3、带有默认参数值的函数 4、重载函数 VS 带有默认参数值的函数 5、内联函数(Inline Function) 1. 普通函数的优缺点 2. 使用内联函数 3. 定义内联函数 4. 内联函数的使用 5. 将内联函数的声明和定义分离 6. 内联函数使用限制 ...

目录 1、Destructor(析构函数) 在堆和栈(函数作用域与内嵌作用域)上分别创建Employee对象,观察析构函数的行为 2、Friend(友元) 1、为何需要友元 2、友元函数和友元类 3、关于友元的一些问题 3、Copy Constructor(拷贝构造函数) 拷贝构造 隐式声明的拷贝构造函数 在堆和栈上分别拷贝创建Employee对象 4、深拷贝与浅拷贝 1、Customizing ...