
C/C++
文章平均质量分 87
lxie0
这个作者很懒,什么都没留下…
展开
-
C++基础知识
1.extern的作用extern关键字可以用来声明变量和函数作为外部变量或者函数供其它文件使用。extern “C”extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。因为在C++出现以前,很多代码都是C语言写的,而且很底层的库也是C语言写的,为了更好的支持原来的C代码和已经写好的C语言库,需要在C++中尽可能的支持C,而extern "C"就是其中的一个策略。2.static关键字原创 2021-10-21 21:43:02 · 474 阅读 · 0 评论 -
关于C/C++中可变参数的详细介绍(va_list,va_start,va_arg,va_end)
学习一下/////由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦,即使采用C++,如果参数个数不能确定,也很难采用函数重载。对这种情况,提出了指针参数来解决问题。如printf()函数,其原型为:int printf( const char* format, ...);它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的,例如我...转载 2019-10-07 10:56:33 · 528 阅读 · 0 评论 -
浅拷贝与深拷贝
浅拷贝,只是对指针的拷贝,拷贝后两个指针指向同一个内存空间,深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针。主要出问题在拷贝构造函数时,如果成员变量含有指针就容易出问题、假如有一个成员变量的指针,char *m_data;其一,浅拷贝只是拷贝了指针,使得两个指针指向同一个地址,这样在对象块结束,调用函数析构的时,会造成同一份资源析构2次...转载 2018-09-03 14:37:53 · 153 阅读 · 0 评论 -
针对32位系统和64为系统下sizeof()的大小,包括指针的长度
长度 32位系统 64位系统 指针 4字节 8字节 int 4 8 char 1 1 double 8 16 情形一:#include"stdafx.h"#include<iostream>#include<stdio.h>#include<math.h>using ...原创 2018-09-05 15:23:13 · 15188 阅读 · 2 评论 -
发现一个贪吃蛇的程序,挺有意思的,存着看看
https://www.cnblogs.com/magicxyx/p/9456533.html 作者Magic激流,点赞。转载 2018-08-10 20:38:23 · 875 阅读 · 0 评论 -
算法笔记:BFS与DFS 书上给的BFS,现在对BFS进行改写为DFS
给定一个n*m大小的迷宫,其中*代表墙,而.代表平地,S代表起点,T代表终点。移动过程中,如果当前位置是(x,y)下标从0开始,且每次只能上下左右(x,y+1)、(x,y-1)、(x-1,y)、(x+1,y)四个位置的平地,求起点S到终点T的最小步数。void BFS_dfs(int step,int x,int y)此函数是bfs改为dfs的函数:#include "stdafx.h"...原创 2018-09-03 16:15:14 · 320 阅读 · 1 评论 -
STL之set的应用
一个机器人在雪地上行走,按如下方式1)向前行进随机的步数(每次步长想等),然后右转90度2)如此重复6次测试用例:2 3 5 5 4 2 true有交叉 1 3 4 2 6 2 true有交叉 1 6 5 4 3 2 false无交叉set可以去重复,考虑把所有经过的端点都...原创 2018-08-14 19:42:19 · 479 阅读 · 3 评论 -
STL之vector
1、vector 翻译为向量,用“变长数组”更容易理解一些,此外vector还可以用来以邻接表的方式存储图,这对无法使用邻接矩阵的题目(节点数过多),有害怕使用邻接表的情况是十分友好的。需要添加的头文件 #include<vector> 定义vector方式 ,这里的typename可以是任何基本类型:Int double char 结构或者是STL容器ve...翻译 2018-08-12 21:51:32 · 163 阅读 · 0 评论 -
一类常见DFS问题的解决方法:给定一个序列,枚举这个序列的所有子序列(可以不连续),选择出满足一定条件的一个最优的子序列。
这个问题可以等价为:枚举从N个整数中选择K个数,这K个数满足一定的条件。给定N个整数(可能有负数),从中选取K个数,,使得这K个数之和恰好为X,如果有多种方案,选择他们中元素平方和最大的一组。(数据保证有唯一性),例如从4个整数中{2,3,3,4}中选择2个数,使他们的和为6,显然有两种方案,{2,4},{3,3},其中平方和最大的是{2,4};函数声明:void DFS(int inde...转载 2018-08-13 12:08:41 · 1439 阅读 · 0 评论 -
String str=new String("a")和String str = "a"有什么区别?
问:String str=new String("a")和String str = "a"有什么区别? 答:String str = "a"; 这个只是一个引用,内存中如果有“a"的话,str就指向它;如果没有,才创建它; 如果你以后还用到"a"这个字符串的话并且是这样用: String str1 = "a"; String str2 = "a"; String转载 2018-08-18 15:15:46 · 1590 阅读 · 0 评论 -
break continue return exit区别
break 主要用于switch中,用来退出循环,接着执行循环结构下面的第一条语句continue 这个有些特殊,它没有真正的退出循环只是退出本次循环,然后接着执行下一次循环return 表示代码到此退出此函数的执行,返回到函数调用处,如果是main()函数则结束整个程序的运行。 exit 与return的作用基本类似,在main()中,二者作用一致。最...原创 2018-08-10 20:22:24 · 1500 阅读 · 0 评论