首页 > 编程语言 >【C++复习】模板与群体数据(2)

【C++复习】模板与群体数据(2)

时间:2023-02-07 16:44:37浏览次数:55  
标签:复习 元素 C++ 访问 数组 线性 群体 模板

学习重点:容器类型内部的实现机制,顺便复习前面各章内容。容器类型的具体实现不需要特别关注(目前不需要会裸手写这么一个容器类型)

1、群体/线性群体

群体的概念

  1. 群体是指由多个数据元素组成的集合体。群体可以分为两个大类:线性群体和非线性群体
  2. 线性群体中的元素按位置排列有序,可以区分为第一个元素、第二个元素等
  3. 非线性群体不用位置顺序来标识元素

线性群体

  1. 在线性群体中,又可按照访问元素的不同方法分为直接访问、顺序访问和索引访问
  2. 本章(9章)中只介绍直接访问和顺序访问

2、直接访问的线性群体——数组类

2.1 简介

  1. 静态数组是具有固定元素个数的群体,其中的元素可以通过下标直接访问
    1. 缺点:大小在编译时就已经确定,在运行时无法修改
  2. 动态数组由一系列位置连续的、任意数量相同类型的元素组成
    1. 优点:其元素个数可在程序运行时改变
  3. vector就是用类模板实现的动态数组

2.2 例9-3 动态数组类模板程序

    1. 为什么有的函数返回引用
      • 如果一个函数的返回值是一个对象的值,就是右值,不能成为左值
      • 如果返回值为引用。由于引用是对象的别名,通过引用可以改变对象的值,因此是左值
    2. assert(sz>=0);:断言,当sz<0时程序退出,这个在异常处理中会讲,现在凑活用

2.3 例9-3 动态数组类模板程序

  1. 复制构造函数
    • 指针运算符重载时不写返回值,也不写形参
    • 为什么需要指针转换运算符?

2.4 例9-4 Array类的应用

求范围2~N中的质数,N在程序运行时由键盘输入

参考:C++语言程序设计(第5版),郑莉,清华大学

标签:复习,元素,C++,访问,数组,线性,群体,模板
From: https://www.cnblogs.com/FishSmallWorld/p/17098370.html

相关文章

  • 【八大数据排序法】基数排序法的图形理解和案例实现 | C++
    第二十章基数排序法:::hljs-center目录第二十章基数排序法●前言●认识排序●一、基数排序法是什么?1.简要介绍2.图形理解3.算法分析●二、案例实现1.......
  • vscode vue代码模板
    {"Printtoconsole":{"prefix":"vue","body":["<!--$1-->","<template>","<divclass='$2'>$5</d......
  • c++ gstreamer使用2
    1,播放教程playbin#include<gst/gst.h>#include<stdio.h>/*Structuretocontainallourinformation,sowecanpassitaround*/typedefstruct_CustomData......
  • django1.4设置模板路径和CSS,JS,image等路径的方法
    对于DJANGO这类MVC框架来说,路径问题可以称为一个谜一样的东西,很多人因为对路径不知道如何处理而觉得MVC实在是云里雾里不知所云。本文主要解决django中关于模板路径设置、CS......
  • 二分模板以及部分二分题
    题目来源于学校oj(刷一部分比较简单的题)模板题(但在A-B数对题里面改进了模板)http://www.mangata.ltd/p/P1190#include<iostream>#include<algorithm>//含有sort函数,......
  • [C++]数据结构之堆-上滤下滤以及用于排序
    #include<iostream>usingnamespacestd;/**堆,就是一棵完全二叉树,物理存储方式是数组,一般情况下,都牺牲第一个元素arr[0],剩下的就满足了从1开始计数*若堆从1开始计数,那么......
  • PAM模板
    #include<bits/stdc++.h>usingnamespacestd;constintM=5e5+5;chars[M];intlen[M],num[M],fail[M],ch[M][26],tot=1;intget_fail(intx,inti){while(......
  • POJ2487 Farey Sequence 欧拉函数模板题
    FareySequenceDescriptionTheFareySequenceFnforanyintegernwithn>=2isthesetofirreduciblerationalnumbersa/bwith0<a<b<=nandgcd(a,b)=1......
  • 【C++复习】5.7 多文件结构与编译预处理命令
    1、C++项目结构C++程序的一般组织架构类声明文件(.h文件)类实现文件(.cpp文件)类的使用文件(main()所在的.cpp文件)用工程组合各文件2、编译链接编译链接过程3、外部......
  • 复习redis持久化的两种方式RDB和AOF
    redis持久化----两种方式1、redis提供了两种持久化的方式,分别是RDB(RedisDataBase)和AOF(AppendOnlyFile)。2、RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并......