C/C++
大鱼不吃鱼(wanna)
这个人有点酷还有点厉害哟!
展开
-
int (*p)[n] 、int *p[n]、int *p()、int *p、int **p、int (*p)()等简单总结
如int *p ={1,2,3}, int **pp=&p,pp=指针p的首地址,*pp=数组的首地址,**pp=数组第一个值1。p[n] 就是一个指针数组,数据类型为int ,元素为地址(变量地址,数组地址,函数地址等),也就是说定义了n个不同指向int型的指针。为了便于理解,可以把这个p换成一个函数的名字 ,比如fun,那么int *fun()代表的是调用这个函数后,这个函数的返回值是一个指针。int **p表示的是二级指针,表示p所指向的地址里面存放的是一个指向int类型的指针。转载 2023-10-31 13:38:32 · 705 阅读 · 0 评论 -
C++使用两个栈实现双端队列——F1 B1 B2 B3 B4 B5 PF PF PB PB
当有一个栈空,比如左栈v1空了,此时还要从左边出栈,那么把v2的所有元素依次装到v1里面,这样元素的相对顺序就没有变化。如v2从栈顶到栈底有元素5-4-2-3 ,那么装入v1仍是:5-4-2-3,在v1出栈3,就达到了最开始v2想要出栈底元素的内容。示例:F1 B1 B2 B3 B4 B5 PF PF PB PB。用两个栈v1,v2分别表示左栈和右栈,即可实现双端队列。当两个栈都不空的时候,不管前面后面出栈,都直接Pop。当从前面插入元素时,v1.push()当从后面插入元素时,v2.push()原创 2023-10-12 20:24:46 · 326 阅读 · 0 评论 -
C++超复杂的构造和析构函数执行顺序详解
构造函数的调用顺序:自上而下;析构函数的调用顺序:自下而上。原创 2023-10-10 23:53:14 · 447 阅读 · 0 评论 -
将 ipv4地址 转化为32位无符号整数 ——如 “10.10.1.1” 为168427777
其中每个部分最多三个数字,故使用循环三次获得整数,不足三个数字,检测跳出循环即可。1、依次取出四个部分ip,将其化为整数;若不足四部分,判定为非法ip。2、对每个部分的ip整数,看作是256进制,将其运算叠加,得到答案。如 “10.10.1.1” 为168427777。将 ipv4地址 转化为32位无符号整数。原创 2023-10-09 21:32:32 · 406 阅读 · 0 评论 -
C++读取含空格的字符串
注意:如果要循环的多次从屏幕上读取一行的话,就要在读取一行后,在用%c读取一个字符,将输入缓冲区中的换行符给读出来。功能是从标准输入键盘上读入一个完整的行(从标准输入读,一直读到遇到换行符),把读到的内容存入括号中指定的字符数组里,并用空字符’\0’取代行尾的换行符’\n’。说明:在scanf函数中,可以使用%c来读取一个字符,使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串。读入不需要考虑最后的换行符。转载 2023-10-08 21:08:23 · 2223 阅读 · 0 评论 -
C++智能指针weak_ptr的作用
使用std::weak_ptr来持有A的弱引用,这样不会增加A对象的引用计数。当A对象被释放时,std::weak_ptr会自动失效,不会影响资源的释放。这样就打破了循环引用,避免了资源泄漏的问题。原创 2023-08-28 14:04:50 · 126 阅读 · 0 评论 -
使用VS Code 配置并编译运行C/C++程序
使用VS Code 配置并编译运行C/C++程序原创 2023-04-19 22:11:03 · 169 阅读 · 0 评论 -
12 gcc、g++、make、cmake区别
gcc/g++应对单个文件比较好,但是当面对大工程时,我们一般会用make工具,make工具则是根据Makefile的信息来进行编译等,但是Makefile在工程比较大的时候,人工手写也是很复杂的,所以有了cmake工具,cmake则是根据文件去生成makefile。到这里套娃结束,因为即使工程再怎么大,认为都是可以去书写CMakeLists.txt 文件的。转载 2023-04-19 22:02:51 · 490 阅读 · 0 评论 -
protobuf 存取数据
protobuf 存取数据原创 2022-08-25 14:57:20 · 990 阅读 · 0 评论 -
C、C++调用函数查看编译器执行时的路径
C、C++调用函数查看编译器执行的路径原创 2022-08-24 11:44:42 · 644 阅读 · 0 评论 -
make makefile cmake qmake都是什么,有什么区别?
cmake、qmake转载 2022-07-05 11:22:09 · 117 阅读 · 0 评论 -
05 C++11 变量的初始化和赋值
定义在函数(包含main函数)之外的变量都将被默认初始化为0,而定义在函数体内部的内置类型将不会被初始化。原创 2022-01-14 19:53:23 · 681 阅读 · 0 评论 -
04 c 和 c++当中结构体定义变量的区别
结构体相关问题//C语言struct Node{ ElemType data; struct Node *next;};那么要声明这种结构体的变量:C语言必须要这样写struct Node xxx;C++则可以直接:Node xxx;原创 2021-12-30 20:04:53 · 273 阅读 · 0 评论 -
03 如何初始化一维vector?
如何初始化一维vector?原创 2021-12-30 20:02:07 · 328 阅读 · 0 评论 -
02 vector数组使用迭代器访问数组元素
使用迭代器访问数组元素原创 2021-12-30 19:57:22 · 1208 阅读 · 0 评论 -
01 初始化二维Vector(指定维数、元素全为0)
初始化二维vector原创 2021-12-30 19:53:49 · 2176 阅读 · 0 评论