一、快速排序
1.定义基准数,一般为指向begin
2.从右向左找第一个比基准数小的数
3.从左向右找第一个比基准数大的数
4.此时互换这两个数
二、迭代器([begin,end]):通过前一个元素找到下一个元素(++),原理是基于数组有序性
迭代冒泡排序:
三、const的用法
1.const int i ,无法通过直接访问改变其值,但能通过间接访问修改
2.const int *p,无法通过间接访问来修改i值
3.int const *p,无法修改p所指向的地址
四、字符串数组
1.匿名数组:"Hello" 该数组没有名字,第一个字母即代表首元素
2.strcpy与strncpy:strncpy本质上也是拷贝,只不过在传参时多传一个int n,即拷贝多少个字节数
3.void *p万能指针:能接受任何类型指针的地址(不能进行指针运算)
应用:主要是为了解决不同的基类型,来实现数据接收
4.内存拷贝: memcpy(void *dest,const void *rsc,size_t n);
从内存某一个地方拷贝到新的地方并且连续
5.strcmp与strncmp:与strncpy相似,n代表所比较的字节数
6.特定字符串输出:
for(i = 0;i < strlen(s1) - strlen(s2);++i)
{
if(strncmp(s1 + i,s2,strlen(s2)) == 0)
{
return 1;
}
}
return -1;
7.指针函数:返回值为指针的函数(不建议使用局部变量,用完即销毁,最后所指向的是野指针)
解决方法:1.全局变量
2.static将动态生存期变为静态生存期
8.malloc申请空间
在堆区上申请空间(手动)
形式为:void (size_t size) ;用完必须释放空间free
其返回值是申请空间的元素的首地址
malloc 分配两次空间,其空间不连续