C++中struct的用法

废话

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中所有东西直接丢给啊

猜你喜欢

转载自blog.csdn.net/a_forever_dream/article/details/88843230