码迷,mamicode.com
首页 > 其他好文 > 详细

小小的说一下结构体

时间:2016-06-10 16:12:48      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

          PS:其实小小的说一下不就是浅论么= =

         C++中,有一个非常有意思的东西就是struct,加上最近做了几个关于结构体的题,于是心血来潮讲一讲结构体吧。

         结构体的基本格式:

struct   node
{
 数据类型1  变量1;
 数据类型2  变量2;
 数据类型3  变量3;
 ……
 ……
 数据类型n  变量n;
}结构体名称;

      结构体一般用于某些关联性很强却类型不同(或者条件不同)的数据中,例如:

struct xuesheng     //学生
{
      int chengji;     //成绩
      string  mingzi;      //名字
      int mingci;      //名次
      char  chenghao;    //称号
}a[11];

这样用起来我们就可以将学生所有信息归类,比如这样:

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
struct xuesheng     
{
      int chengji;     
      string  mingzi;    
      int mingci;      
      char  chenghao;   
}a[11];
int main()
{
     int i;
     for(i=1;i<=10;i++)
     {
         cin>>a[i].chenghao>>a[i].chengji;
         cin>>a[i].mingci>>a[i].mingzi;
     }
     for(i=1;i<=10;i++)
     {
         cout<<a[i].chenghao<<a[i].chengji;
         cout<<a[i].mingci<<a[i].mingzi;
     }
     return 0;
}

当然,我们也可以通过结构体做其他操作,比如我们现在如果要将学生按成绩由大到小输出,就可以利用结构体+STL——sort函数(别打我,我懒得写排序)来实现。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
struct xuesheng     
{
      int chengji;     
      string  mingzi;    
      int mingci;      
      char  chenghao;   
}a[11];
//int cmp(xuesheng s,xuesheng t);
int main()
{
     int i;
     for(i=1;i<=10;i++)
     {
         cin>>a[i].chenghao>>a[i].chengji;
         cin>>a[i].mingci>>a[i].mingzi;
     }
     sort(a+1,a+11,cmp);
     for(i=1;i<=10;i++)
     {
         cout<<a[i].chenghao<<a[i].chengji;
         cout<<a[i].mingci<<a[i].mingzi;
     }
     return 0;
}

这里有一个cmp函数,和sort有很大的联系,实际上这是一个关于结构体排序的东西,他的用法如下:

int cmp(结构体变量1,结构体变量2)
{
return 变量1>变量2;
}
***********
***********
sort(a,a+n,cmp);      //从大到小排列;

我们将成绩放入,就成了这样:

int cmp(xuesheng s,xuesheng t)    //注意这里是struct的名称,不是结构体名称(有点乱)
{
return s.chengji>t.chengji;
}

sort(a,a+n,cmp);      //从大到小排列;

这样子,我们就把学生按成绩从大到小排出来了,当然,其他的数据也会跟着变化。再输出的时候,所有信息就会按照成绩整齐的排列出来,还是非常方便的。

--------------------------------------------------分隔符--------------------------------------------------

结构体中其他操作还有很多,这里也说不完(毕竟浅论orz),剩下的东西还需要读者自己去琢磨。

//好不容易有了一个正常的博文,内心暗爽+1s;

小小的说一下结构体

标签:

原文地址:http://www.cnblogs.com/qianyintinghan/p/5573786.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!