C/C++小知识
3Sunremitting
优秀是一种习惯,堕落也是一种习惯
展开
-
C++标准模板库(STL)之sort函数
C语言中,有很多东西需要读者自己去实现,如果不好实现的话还会容易出错。为了简化这些,C++为使用者提供了标准模板库(Standard Template Library,STL),其中封装了很多相当实用的容器。(容器可以暂时理解为能实现很多功能的东西。)今天来看一下STL中的sort函数:基本介绍:sort函数是用来排序的函数,它可以根据情形使用不同的排序方法,效率较高。sort函数在实现时规避了经典快速排序中可能出现的会导致实际复杂度退化到O(n^2)的极端情况。1、sort的使用sort函数的使原创 2020-06-17 21:31:52 · 791 阅读 · 0 评论 -
从选择排序看C++和Python的不同
#include<cstdio>#include<cstring>//首先是定义函数的不同,Python是用def开头+函数名+参数void SelectSort(int arr[]) //C++数组传入是 arr[],而不是 arr=[] 也不是 arr=[20]之类的,在C++里如果传入的数组需要填写长度,应该为 arr[20]{ for(int i=0;i<8;i++) { int minIndex=i; // 所有变量在使用前都要声明 数据类型原创 2020-06-17 16:43:16 · 125 阅读 · 0 评论 -
C/C++进制转换(不可不看)
对于一个P进制的数,如果要转化为Q进制,需要分两步:1、将P进制数x转换为十进制数y。2、将十进制数y转化为Q进制数z 。代码实现:1、将P进制数x转换为十进制数yint y=0,product=1;while(x!=0){ y = y+(x%10)*product; x=x/10; product=product*p;}2、将十进制数y转化为Q进制数zint z[40],num=0;do{ z[num++]=y%Q; y=y/Q;}while(y!=0);这里注意原创 2020-06-17 10:22:59 · 198 阅读 · 0 评论 -
结构体及结构体初始化方法:构造函数
构造函数是用来初始化结构体的一种函数,它直接定义在结构体中。它不需要写返回值类型,而且函数名和结构体名相同。我们在定义结构体时,系统会自动生成一个构造函数,但是这个构造函数不需要传入任何参数。我们可以自己手动定义构造函数。而且在一个结构体中,可以有多个构造函数,在调用时,根据参数判断需要调用哪个构造函数。关于结构体的一些小知识:结构体里面可以定义除了自己本身之外的任何数据类型。不过虽然不能定义自己本身,但是可以定义指向自身类型的指针变量。...原创 2020-06-15 11:01:57 · 574 阅读 · 0 评论 -
C/C++指针、引用相关小知识
变量的地址:变量的地址一般指它占用的字节中第一个字节的地址。也就是说,一个int型的变量的地址就是它占用的 4Byte当中第一个字节的地址。在一个变量前面加上&,就表示变量的地址。指针实际上是表示内存地址的一个整数,它是一个unsigned类型的整数。在C语言中,数组名也可以作为数组的首地址使用。使用指针变量作为函数参数:指针类型也可以作为函数参数对的类型,这时视为把变量的地址传入函数。如果在函数中对这个地址中的元素进行改变,原先的数据就会确实的被改变。注:在进行函数书写..原创 2020-06-15 10:38:52 · 95 阅读 · 0 评论 -
C/C++中,数组作为函数参数传入
函数的参数可以是数组,且数组作为参数传入时,参数中数组的第一维不需要填写长度,如果是二维,那么第二维需要填写长度,在实际调用时也只需填写数组名。最重要的是,数组作为参数时,在函数中对数组元素的修改就等同于对原数组元素的修改。需要注意的是,虽然数组可以作为参数...原创 2020-06-15 09:53:02 · 1469 阅读 · 0 评论 -
C/C++字符数组(注意事项)
C/C++中,字符数组的输入有很多种,但是每种情况都是不一样的,一定要把字符数组的每种输入输出的情况弄清楚,这样才能在不同的情况下使用不同的方法。1、字符数组的初始化方法一、如果要初始化的字符串种还有空格,应该把空格也当作一个字符输入,注意,字符是使用单引号。char str[15]={'G', 'o', 'o', 'd', ' ', 's', 't', 'o', 'r', 'y', '!'};方法二、直接使用字符串初始化,但是仅限于在初始化时使用,程序其他位置不允许这样直接赋值整个字符串。原创 2020-06-14 16:40:31 · 973 阅读 · 0 评论 -
C++数组知识注意点
一位数组:在定义时最好初始化,初始化方式如下:假设把数组全部初始化为0,则有如下方式:1、a[10]={} ;2、a[10]={0};3、使用memset函数二维数组使用注意事项:在使用数组时,一定要注意,如果数组大小较大(大概10^6级别),则需要将数组定义在主函数外面,否则会使程序异常退出。原因使函数内部申请的局部变量来自系统栈,允许申请的空间较小;而函数外部申请的全局变量来自静态存储区,允许申请的空间较大。memset函数:对数组中每一个元素赋相同的值mems..原创 2020-06-14 11:39:04 · 225 阅读 · 0 评论