一般在做算法题时,往往需要用结构体来存储下一个具体的对象,比如说,一个学生,有不超过8位的姓名name,16位学号id,int类型的成绩score。
则可以使用如下的结构体,并且建立构造函数。
struct student{
char name[10],id[20];
int score;
student(){
}//注意点1
student(char _name[10],char _id[20],int _score){
//注意点2
strcpy(name,_name);
strcpy(id,_id);
score = _score;
}
};
如果将name和id设为string类型,在进行数据处理时是非常方便的,但是在输入输出哦时使用cin和cout,却使得在oj中耗时较大。之前我不会使用字符数组进行构造函数的数据赋值,今天尝试了一下strcpy函数,发现可以使用strcpy函数来对结构体里面的数组进行初始化。
注意点一,是为了可以不用提供初始化数据就可以单独定义一个student类型的变量
注意点二,是为了可以在定义student变量时提供初始化数据。
int main()
{
student a;
student b = student("Joshua","11111",100);
//等价于
//student b("Joshua","11111",100);
cout<<b.name;
return 0;
}
//运行结果
Joshua