博客
关于我
模板--数组类
阅读量:594 次
发布时间:2019-03-12

本文共 2031 字,大约阅读时间需要 6 分钟。

这是一个自定义数组类的实现例子,主要用于实现内存动态管理和多种数组操作符重载。类名为Array,支持多种数据类型,如整数、双精度和字符等。

类概述

自定义数组类Array提供了一个基于是语言类型T的动态数组结构,主要特点包括:

  • 动态分配和释放内存
  • 操作符重载实现数组的加法、减法操作
  • 自定义输入输出功能
  • 支持不同数据类型的数组操作

类的核心组件包括:

  • 内存动态管理
  • 操作符重载(加、减、写、读等)
  • 内存初始化与复制
  • 以下是类的主要成员函数:

    操作符重载实例

    Array operator+(const Array &arr1);Array operator-(const Array &arr1);// 加法Array operator+(const Array &arr1) {    Array retval; // 返回结果数组    if (arr1.size == size) {        for (int i = 0; i < arr1.size; ++i) {            retval.list[i] = list[i] + arr1.list[i];        }    }    return retval;}// 减法Array operator-(const Array &arr1) {    Array retval; // 返回结果数组    if (arr1.size == size) {        for (int i = 0; i < arr1.size; ++i) {            retval.list[i] = list[i] - arr1.list[i];        }    }    return retval;}

    输入输出模板化

    template 
    Array
    & operator[](int n) { assert(n >= 0 && n < size); return list[n];}template
    const T& operator[](int n) const { assert(n >= 0 && n < size); return list[n];}

    类初始化与释放

    template 
    Array
    ::Array(int sz) { assert(sz >= 0); size = sz; list = new T[size];}template
    Array
    ::~Array() { delete[] list;}template
    Array
    ::Array(const Array
    &a) { size = a.size; list = new T[size]; for (int i = 0; i < size; ++i) { list[i] = a.list[i]; }}

    实用示例

    以下是该数组类的使用示例:

    // 整数数组示例Array
    a1(10), a2(10), a3(10), a4(10), a5(10), a6(7), a7(7);// 随机赋值for (int i = 0; i < 10; ++i) { a1[i] = rand() % 10; a3[i] = rand() % 10;}for (int i = 0; i < 7; ++i) { a7[i] = rand() % 10;}// 操作符示例a2 = a1; // 内.IContainer复制a4 = a1 + a3; // 数组加法a5 = a3 - a1; // 数组减法a6 = a1 + a7; // 数组加法if (a6 != a1 + a7) { // 不等于则非操作}

    测试案例

    测试代码如下:

    // 整数数组System.out.println("数组a1\n" + a1);System.out.println("数组a3\n" + a3);System.out.println("数组a7\n" + a7);// 字符数组Array
    arr3(5), arr4(5), arr5(5);for (int i = 0; i < 5; ++i) { arr3[i] = 'G' + i;}System.out.println("数组arr3\n" + arr3);

    以上代码展示了Array类的基本使用方法和功能特性,适合用于处理动态数组操作和快速数组等操作。

    转载地址:http://iknxz.baihongyu.com/

    你可能感兴趣的文章
    Linux运行C语言文件
    查看>>
    C字符串高级
    查看>>
    2010-03-25 函数题
    查看>>
    C语言_动态内存分配练习
    查看>>
    Linux学习_系统进程概念
    查看>>
    七层网络模型(待添加)
    查看>>
    考研复试——KY276 Problem C
    查看>>
    老鸟带你画tiled lines
    查看>>
    MybatisPlus自定义Sql实现多表查询
    查看>>
    Java位运算,负数的二进制表示形式,int类型最大值为什么是2的31次方-1
    查看>>
    PyQt5快速上手基础篇10-QSettings用法
    查看>>
    JQuery--手风琴,留言板
    查看>>
    MFC 自定义消息发送字符串
    查看>>
    goahead 下goaction测试与搭建
    查看>>
    Adding Powers
    查看>>
    ideal 下创建springboot项目
    查看>>
    Linux操作系统的安装与使用
    查看>>
    ajax请求出现/[object%20Object]错误的解决办法
    查看>>
    流体运动估计光流算法研究
    查看>>
    如何转载博客
    查看>>