废话
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{
node *zuo,*you;
int l,r,z;
void build(int ll,int rr)
{
l=ll,r=rr;z=0;
int mid=l+r>>1;
if(l==r)zuo=you=NULL;
else zuo=new node,zuo->build(ll,mid),you=new node,you->build(mid+1,rr);
}
};
这是利用指针和struct写的一个构建线段树的代码,可以说是很精简了。
并且还有一个很方便的功能:
node a,b;
a=b;//可以直接把b中所有东西直接丢给啊