废话
struct是个很有用的东西呢!
进入正题
struct的用处是定义一个新的类型,而这个类型里面可以是各种各样的东西。
比如:
struct node{//定义一个新的类型叫node
int a;
int b[110];
char c;
double d;
};//别忘了分号,毕竟这是个语句呢
当然里面还可以放一些更厉害的东西,就像这个!
struct node{
int y(int p)
{
return p+1;
}
int z;
void add()
{
z++;//这个z和上面那个是同一个
}
};
定义的话直接用就行了,譬如:
node x;
需要调用里面的元素时,加个点就行了,就像这样:
x.a=10;
x.b[1]++;
x.c='a';
x.d=3.1415;
x.z=x.y(x.z);
x.add();
struct还有一个神奇的东西:构造函数
那有人可能会问,这比直接定义里面的元素好在哪里呢?
既然struct是把一些不相关的东西整合到一起,那么这些不相关的东西就有了某些神奇的联系,比如说可以用来定义线段树的顶点之类的。
看下面一段代码:
struct node{
int l,r,mid;node *ch[2];
node(int x,int y):l(x),r(y),mid(l+r>>1){
if(x<y){
ch[0]=new node(l,mid);
ch[1]=new node(mid+1,r);
}else ch[0]=ch[1]=NULL;
}
};
这是利用指针和struct写的一个构建线段树的代码,可以说是很精简了。
并且还有一个很方便的功能:
node a,b;
a=b;//可以直接把b中所有东西直接丢给a
版权声明:本文为a_forever_dream原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。