C++ 数据结构 struct 语句

C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构是 C++ 中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。

结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:

  • Title :标题
  • Author :作者
  • Subject :类目
  • Book ID :书的 ID

定义结构

为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:

struct type_name {
member_type1 member_name1;
member_type2 member_name2;
member_type3 member_name3;
.
.
} object_names;

type_name 是结构体类型的名称,member_type1 member_name1 是标准的变量定义,比如 int i; 或者 float f; 或者其他有效的变量定义。在结构定义的末尾,最后一个分号之前,您可以指定一个或多个结构变量,这是可选的。下面是声明一个结构体类型 Books,变量为 book

struct Books
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} book;

示例:对结构体数组排序。

按结构体中某个成员进行排序,下面代码以成员b1为升序的排序。

#include<iostream> 
#include<algorithm> 
using namespace std; 
struct st 
{ 
    int a1; 
    int b1; 
}arr[100]; 
bool  cmp(const st &x, const st &y) 
{ 
    return x.b1<y.b1;//从小到大排<,若要从大到小排则> 
} 
int main() 
{ 
    int i; 
    for (i=0;i<3;i++) 
      cin>>arr[i].a1>>arr[i].b1;//对结构体进行输入  
      sort(arr,arr+3,cmp); 
    for (i=0;i<3;i++) 
      cout<<arr[i].a1<<" "<<arr[i].b1<<endl; 
}