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{
	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
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值