分享兴趣,传播快乐,增长见闻,留下美好!
亲爱的您,这里是LearningYard新学苑。
2024年07月23日
其实就是指针的简单使用,能够通过练习,加深对指针的理解。而在C++容器中,vector也是用数组实现的自动扩容。
当然,我们需要保证数组名不会随之改变,不然就不算什么自动扩容了。
2024年07月23日
std::array 是c++ 11引入的固定大小数组的容器。 在实践中还没有使用过, 为啥引入呢, 都有std::vector了; 难道是因为名字吗? 不应该, 学习学习。
2024年07月23日
枚举,实质是一个整型常量,但它是一个特殊的整型常量,其值是可列举的,其定义的枚举变量只能在列举的范围内取值(符号常量,如果是对应的整数,要强制转换)。比常量数组的名字更有含义,如一周的英文,Friday比week[5]更有意义。当然,相对于宏定义,如#define Friday 5,也显得更简洁、准确(限定了有限的取值可能)。
2024年07月23日
然后我们再来去看结构体,实际上在java中,我们用类,对象比较多,用这个结构体也是很少很少.
?
但是c++中,用的结构体就多了.
2024年07月23日
什么是变长数组?
变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。
1.普通方式实现一维变长数组:
#include<iostream> using namespace std; int main() { int len; cin>>len; //用指针p指向new动态分配的长度为len*sizeof(int)的内存空间 int *p=new int[len]; /*注意int *p=new int[len];这一句,你不能这样做: int p[len]; C++编译器会报错说len的大小不能确定,因为用这种形式声明数组,数组的大小需要在编译时确定。而且这样也不行: int p[]=new int[len]; 编译器会说不能把int*型转化为int[]型,因为用new开辟了一段内存空间后会返回这段内存的首地址,所以要把这个地址赋给一个指针,所以要用: int *p=new int[len]*/ ........... delete[] p;//注意要注销指针p,使程序释放用new开辟的内存空间 }
2024年07月23日
二分法查找相对于顺序查找,有较高的效率,但前提条件是一个排好序的数组。排序的方法很多,其中效率较高的是快速排序方法:
实例代码如下:
先是产生一个随机数组,然后快速排序,最后是二分法查找:
运行结果:
2024年07月23日
一般在C、C++中,数组作为函数传递的方式一般有两种传递方法,一种是function(int a[]); 另一种是function(int *a),为了使函数更加通用,一般还要在后面加上数组的长度,即:function(int a[],int num)和function(int *a,int num)。下面直接看看两种传递的结果。
2024年07月23日
采用堆排序的方法去排序一个数组{47, 35, 26, 20, 18, 7, 13, 10}
数组对应堆的图例,根节点大于左右孩子节点