zoukankan      html  css  js  c++  java
  • 2019年2月11日训练日记(结构体知识点学习小结)

    结构体

    结构体定义和操作:
    定义结构体及结构体变量:
    一、定义结构体类型的时候同时定义变量:
    struct结构体变量名
    {
    成员表;
    成员函数;
    }结构体变量表;

    例如:

    struct student
    {
        string name;
       int chinese,math;
       int total;
    }a[101];
    

    同时定义了a数组变量
    二、先定义结构体再定义结构体变量:

    struct student
    {
    	string name;
    	int chinese,math;
    	int total;
    };
    student a[110];
    

    注意的问题:

    结构体变量名和结构体名不能相同。且只有定义结构体变量时,系统才能为其分配内存。
    结构体变量的整体性:例如:swap(a[i],a[i+1]);
    结构体变量的初始化与数组的初始化很类似:student op={“gaoxiang”,89,90,179};

    结构体变量与成员之间引用的一般形式为:
    结构体变量名.成员名
    例:

    for(int i = 0;i<=n;i++)
    {
        cin>>a[i].name;
    	cin>>a[i].chinese>>a[i].math;
    	a[i].total=a[i].chinese+a[i].math;
    }        //对结构体中成员的赋值、取值。
    

    其中成员运算符”.”在存取成员数值时使用,其优先级最高,并具有做结合性,可记作:strua.strub.membb
    这说明结构体变量strua有结构成员strub;结构体变量strub有成员membb。
    结构体(struct)的应用:
    一、离散化基础:即知道每个数排序后的编号(rank值)。
    分析:排序时必须的,关键是怎么把排名写回原来的数下面,程序使用了分别对数值和下标不同关键词2次排序的办法来解决这个问题,一个数据节点应该包含数值、排名、下标3个元素,用结构体比较好。
    二、模拟链表:动态指针比静态的数组存取慢,于是比赛时很多选手使用数组模拟指针。

  • 相关阅读:
    TZOJ 1214: 数据结构练习题――线性表操作
    团体程序设计天梯赛 到底是不是太胖了
    TZOJ 数据结构实验:单链表元素插入
    Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)
    Codeforces Round #511 (Div. 2)
    模板
    模板
    模板
    Codeforces Round #603 (Div. 2)
    模板
  • 原文地址:https://www.cnblogs.com/study-hard-forever/p/12130058.html
Copyright © 2011-2022 走看看