![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 59
对c++一些零碎知识点的整理
给我来一杯冰可乐
这个作者很懒,什么都没留下…
展开
-
C++中内存泄漏和智能指针
由于疏忽或错误导致程序未能释放已经不再使用的内存。并不是指内存在物理上的消失,而是在应用程序分配某段内存后,因为设计错误,而失去了对该段内存的控制,因而造成了内存泄漏。原创 2022-08-03 09:52:52 · 192 阅读 · 0 评论 -
判断大小端字节序
计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。举例来说,数值使用两个字节储存:高位字节是,低位字节是。 联合体开辟内存法规则是:选取联合体成员变量中,占用内存最大的内存大小,比如联合体内有int char ,float 类型变量,则开辟int型大小的空间。并且这些成员共用这一内存。***********************由于联合体所有数据共享一块地址空间,存放数据的所有成员都是从低地址开始存放,所以我们可以在联合体内定义一个int和原创 2022-07-14 15:56:27 · 300 阅读 · 0 评论 -
C++中的内存对齐
wchar_t:2个字节bool:1个字节short:2个字节int:4个字节float:4个字节double:8个字节long long:8个字节32位系统:long:4个字节指针:4个字节64位系统:long:8个字节指针:8个字节unsigned不影响sizeof的取值。对函数使用sizeof,再编译阶段会被函数返回值的类型取代,如int f1()会返回4,double f2()会返回8.数组大小就是各维数的乘积*数组元素的大小。数组a的大小在定义时未指出,编译时分配给它的空间按照初始化的值确定转载 2022-07-10 11:12:41 · 2637 阅读 · 1 评论 -
引用传递、指针传递
精简版:指针:变量,独立,可变,可空,替身,无类型检查;引用:别名,依赖,不变,非空,本体,有类型检查;完整版:1. 概念 指针从本质上讲是一个变量,变量的值是另一个变量的地址,指针在逻辑上是独立的,它可以被改变的,包括指针变量的值(所指向的地址)和指针变量的值对应的内存中的数据(所指向地址中所存放的数据)。 引用从本质上讲是一个别名,是另一个变量的同义词,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化(先有这个变量,这个实物,这个实物才能有别名),而且其引用的对象在其整个生命转载 2022-07-09 10:53:57 · 1176 阅读 · 0 评论 -
map中的散碎知识点
问题:使用map统计一个字符串中的每个字符出现的次数#include<iostream>#include<map>#include<string>using namespace std;int main(){ map<char, int>needs; string s; s = { "asdwafsada" }; for (auto x : s) { needs[x]++; //遍历每个字符 } map<char, i原创 2022-03-05 20:34:32 · 492 阅读 · 0 评论 -
C++中常量指针和指针常量
常量指针如果在定义指针变量的时候,数据类型前用const修饰,被定义的指针变量就是指向常量的指针变量,指向常量的指针变量成为常量指针。const int* p = &a; //常量指针//举个例子int a = 10;int b = 20;const int* p = &a; //常量指针*p = 9; //操作错误p = &b; //操作成功因为常量指针本质是指针,并且这个指针是一个指向常量的指针,指针指向的变量的值不可以通过该指针修改,但是指针原创 2022-05-02 16:56:36 · 728 阅读 · 0 评论 -
C++中的queue(队列,容器适配器)和deque(双端队列,容器)的区别
queue操作:(容器适配器)queue<int>q; //创建一个int型的空队列qq.empty(); //判断队列是否为空,空返回trueq.push(x); //把变量x从队尾入队q.pop(); //将对头元素弹出q.front(); //只返回队头元素q.back(); //只返回队尾元素q.size(); //返回队列中元素个数容器适配器一共三个:stack、queue、priority_queue(优先队列)原创 2022-04-29 16:35:55 · 1063 阅读 · 0 评论 -
C++中的string
string的增很简单,直接用”+“,”+=“操作符,可以方便的对字符串进行添加int main() { string s1; string s2; s1 = "abc"; s2 = "abc"; cout << s1 + s2 << endl; return 0;}//输出 abcabcappend()操作int main() { string s1; string s2; s1 = "str1"; s2 = "str2"; s1.ap原创 2022-04-28 20:30:32 · 912 阅读 · 0 评论 -
C++类相关知识点
1、赋值初始化:通过在函数体内进行赋值初始化2、列表初始化:在冒号后使用初始化列表进行初始化1中实在构造函数当中做赋值操作,而2中是纯粹的初始化操作,赋值操作会产生临时对象的,降低程序的效率赋值初始化操作:class Person{public: Person(int a, int b, int c){ m_A = a; m_B = b; m_C = c; } int m_A; int m_B;原创 2022-04-28 11:22:31 · 360 阅读 · 0 评论 -
C++零碎知识
C++中的一维数组内存地址是连续的C++中二维数组内存地址是不连续的,但是在每行是连续的下图打印的例子原创 2022-04-24 16:55:25 · 647 阅读 · 0 评论 -
int型与double型
int型除以double型 会得到 double型但是int型除以int型无论如何也得不到double型,尽管结果已经定义double型,比如以下代码double a;int x = 10;int y = 4;a = x / y;//此时会得到a=2 而非2.5//要想得到2.5,可以把x/y进行强制转换a = (double) x / y;......原创 2022-03-30 10:48:36 · 6554 阅读 · 0 评论 -
c++中的 * 与 &
int* p = &a;int* p =a;int* p = a , p = &a;第一行和第三行可以相互替换,一个意思定义一个指向int的指针p,然后将a的地址取出赋值给p原创 2022-04-11 11:13:52 · 769 阅读 · 0 评论