结构体是一种自定义的数据类型,允许将多个不同类型的变量组合成一个单一的类型。
struct 结构体名称 { 数据类型1 成员变量1; 数据类型2 成员变量2; };
示例:
struct student { string name; int age; };
定义结构体变量:
struct student p1 = {"小C", 10}; // struct 可省略 student p2 = {"小C", 10}; student *p = new student{"小C", 10};
使用点运算符 . 访问成员变量。
.
student p; p.name = "Alice"; p.age = 20;
使用箭头运算符 -> 访问指针指向的结构体对象成员。
->
student p1 = {"Alice", 25}; student *ptr = &p1; ptr->age = 26; cout << "Name: " << ptr->name << endl; cout << "Age: " << ptr->age << endl;
struct student { string name; int age; // 成员函数 void print() { cout << "Name: " << name << endl; cout << "Age: " << age << endl; } }; student p; p.print(); // 调用结构体的成员函数
struct Outer { int data1; struct Inner { int data2; } inner; }; Outer outer; outer.inner.data2 = 100;
sort 的 cmp 应满足严格弱序,建议使用 <,不要使用 <=。
sort
cmp
<
<=
bool cmp(int a, int b) { return a < b; // 升序 }
// 定义结构体 struct st { string id; int age; } a[105]; // 定义排序规则 bool cmp(st x, st y) { return x.id < y.id; } // 进行排序 sort(a, a + n, cmp);