C++ “大杂烩” 指针、、、

STL主要构成:
容器(Containers):用来管理某一类对象的集合。例:deque,list,vector,map等;
算法(Algorithms):作用于容器;提供执行各种操作的方式,包括对容器内容初始化,排序,转换,搜索等;
迭代器(iterators):迭代器用于遍历对象集合的元素,集合可能是容器,也可能是容器的子集;
关于指针:(C++支持空指针)
int *ip;一个整型的指针
double *dp:一个double型的指针;
float *fp:一个浮点型的指针;
char ch:一个字符型的指针;
C++Null指针:
#include
using namespace std;
int main()
{
int
ptr=NULL;
cout<<“ptr的值是”<<ptr;
return 0;
}
编译执行:ptr的值是0
若需检查空指针,可以使用if语句;
C++指针的算术运算:
递增一个指针:
#include
using namespace std;
const int MAX = 3;
int main ()
{
int var[MAX] = {10, 100, 200};
int *ptr; // 指针中的数组地址
ptr = var;
for (int i = 0; i < MAX; i++)
{ cout << “Address of var[” << i << "] = ";
cout << ptr << endl;
cout << “Value of var[” << i << "] = ";
cout << *ptr << endl; // 移动到下一个位置
ptr++;}
return 0; }

递减一个指针

同样地,对指针进行递减运算,即把值减去其数据类型的字节数,如下所示:

实例

#include
using namespace std;
const int MAX = 3;
int main () { int var[MAX] = {10, 100, 200};
int *ptr; // 指针中最后一个元素的地址
ptr = &var[MAX-1];
for (int i = MAX; i > 0; i–) {
cout << “Address of var[” << i << "] = ";
cout << ptr << endl;
cout << “Value of var[” << i << "] = ";
cout << *ptr << endl; // 移动到下一个位置 ptr–; }
return 0; }

指针的比较

指针可以用关系运算符进行比较,如 ==、< 和 >。如果 p1 和 p2 指向两个相关的变量,比如同一个数组中的不同元素,则可对 p1 和 p2 进行大小比较。

下面的程序修改了上面的实例,只要变量指针所指向的地址小于或等于数组的最后一个元素的地址 &var[MAX - 1],则把变量指针进行递增:

实例

#include
using namespace std;
const int MAX = 3;
int main () {
int var[MAX] = {10, 100, 200};
int *ptr; // 指针中第一个元素的地址 ptr = var;
int i = 0;
while ( ptr <= &var[MAX - 1] ) {
cout << “Address of var[” << i << "] = ";
cout << ptr << endl;
cout << “Value of var[” << i << "] = ";
cout << *ptr << endl; // 指向上一个位置
ptr++; i++; }
return 0;
}
树的定义:
大至小:第一阶要比第二阶大,一个一个的输入,进行比较同阶不比,上下不同两阶相比,若上面大于下面保持原样,相反交换位置,堆的应用~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值