![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++基础概念
文章平均质量分 67
智杰狼
这个作者很懒,什么都没留下…
展开
-
C++STL容器——vector
1. 如果reserve(len)的值 > 当前的capacity(),那么会重新分配⼀块能存len个对象的空间,然后把之前的对象通过 copy construtor复制过来,销毁之前的内存;vector有两个函数,⼀个是capacity(),在不分配新内存下最多可以保存的元素个数,另⼀个size(),返回当前已经存 储数据的个数。如果集合已满,在新增数据的时候,就要分配一块更大的内存,将原来的数据复制过来,释放之前的内存,在插入新增的元素,所以。原创 2024-02-29 16:58:31 · 647 阅读 · 0 评论 -
C++STL容器——pair
可以看到,pair的底层被定义为一个struct,其所有成员默认为public,两个成员分别是first和second。其中map的元素是pair,pair<const key_type, mapped_type>。insert 对不包含重复关键字容器,插入成功返回pair<迭代器, bool>,其中迭代器指向给定关键字元素,bool指出插入是否成功。pair 容器保存两数据成员用来生成特定类型的模板。例如:可以用来遍历关联容器。原创 2024-02-29 15:26:46 · 308 阅读 · 0 评论 -
C/C++ malloc、new,free、delete 区别
realloc先判断当前的指针所指内存是否有足够的连续空间,如果有,原地扩大可分配的内存地址,并且返回原来的地址指针;如果空间不够,先按照新指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来的内存区域。malloc则并不知道你在这块内存上要放的数组还是别的东西,反正它就给你一块原始的内存,在给你个内存的地址就完事。使用malloc分配的内存后,如果在使用过程中发现内存不足,可以使用realloc函数进行内存重新分配实现内存的扩充。malloc分配内存失败时返回NULL。原创 2024-01-28 17:48:15 · 440 阅读 · 0 评论 -
C++关于智能指针的一些常见问题
首先解释指针和引用在C++中都用于间接访问变量,但它们有一些区别:1. 指针是一个变量,它保存了另一个变量得内存地址;引用是另一个变量的别名,与原变量共享内存地址。2. 指针可以被重新赋值,指向不同的变量;引用在初始化后不能更改,始终指向同一个变量。3. 指针可以为nullptr,表示不指向任何变量;引用必须绑定到一个变量,不能为nullptr。4. 使用指针需要对其进行解引用以获取或修改其指向的变量的值;引用可以直接使用,无需解引用。原创 2024-01-24 23:46:40 · 1086 阅读 · 0 评论 -
C/C++ 容易混淆的指针声明总结
从 p 开始,先与 () 结合,说明 p 是一个函数,然后进入 () 里面,与 int 结合,说明函数有一个整型变量参数。接着再与*结合,说明数组里的元素是指针,最后再与 int 结合,说明指针指向的内容是整型数据。之后再与 () 里的 int 结合,说明函数有一个 int 型的参数,再与最外层的 int 结合,说明函数的返回类型是整型,所以 p 是一个指向有整型参数且返回类型为整型的函数的指针。之后再与 int 结合,说明数组里的元素是整型的,大小是3,所以 p 是一个指向大小为3的int数组的指针。原创 2024-01-18 16:02:21 · 496 阅读 · 0 评论 -
C++中的面向对象重点总结
功能:多态允许不同类的对象使用相同的接口名字,但具有不同实现的特性,允许将子类类型的指针赋值给父类类型的指针,实现多态有两种方法:1. 覆盖(override):是指子类重新定义父类的。原创 2024-01-05 15:30:45 · 1033 阅读 · 0 评论 -
C++ 中的 extern
首先明白 C/C++ 中变量的声明和定义是两个不同的概念。声明是指告诉编译器某个符号的存在,在程序变量表中记录类型和名字,而定义则是指为该符号分配内存空间或实现其代码逻辑。凡是没有带 extern 的声明同时也都是定义。而对函数而言,带有 {} 是定义,否则是声明。如果想声明一个变量而非定义它,就在变量名前添加关键字 extern, 且不要显示的初始化变量。// 声明//定义声明变量或函数的存在,但不进行定义,让编译器在链接时在其他源文件中查找定义。当链接器在一个全局变量。原创 2023-11-22 22:42:51 · 2563 阅读 · 0 评论 -
C++ 中 的类型转换
类类型能定义由编译器自动执行的转换,不过编译器每次只能执行一种类类型的转换。原创 2023-11-22 21:20:50 · 52 阅读 · 1 评论 -
C++ 中宏定义(define)和内联函数(inline)和 typedef 的区别
宏定义(#define)和内联函数(inline)都是为了减少函数调用开销和提高代码运行效率而引入的机制,但是它们的实现方式和作用机制略有不同。原创 2023-11-21 23:04:04 · 128 阅读 · 0 评论 -
C++ 字节对齐和字节序
在C/C++中,字节对齐时内存分配的一种策略。当分配内存时,编译器会自动调整数据结构的内存布局,使得数据成员的起始地址与其自然对齐边界相匹配。字节对齐有助于提高内存访问速度,因为许多处理器都优化了对齐数据的访问。但是,这可能会导致内存中的一些空间浪费。原创 2023-11-21 22:35:35 · 135 阅读 · 0 评论 -
C++中的 static 和 volatile 的作用
static 修饰全局变量可以将变量的作用域限定在当前文件,使得其他文件无法访问变量。同时,ststic 修饰的全局变量在程序启动时被初始化,生命周期和程序一样长。原创 2023-11-21 22:10:29 · 140 阅读 · 0 评论 -
C++中 const 关键字的用法
在 C/C++ 中,const 是一个关键字,用于表示常量,用于修饰变量、函数、指针等。原创 2023-11-20 22:21:04 · 55 阅读 · 1 评论 -
C++基础知识——sizof关键字
sizeof用来计算变量在所占内存的大小,以字节为单位C++整型数据长度标准:short 至少16位int 至少与 short 一样长long 至少32位,且至少与 int 一样长long long 至少64为,且至少与 long 一样长很多系统都使用最小长度,short 为16位即2个字节,long为32位即4个字节,long long位64位即8个字节,int 的长度较为灵活,一般认为 int 的长度为4个字节,与 long 等长.原创 2023-11-20 22:08:39 · 105 阅读 · 1 评论