自己写的Array类

C#中Array类的使用 Array类 提供创建、操作、搜索和排序数组的方法,因而在公共语言运行时中用作所有数组的基类。 命名控件: System 程序集:mscorlib 语法:public abstract class Array:ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuraEquatab 阅读详情

 

这是今天自己写的一个array类,可能还存在问题,希望大家指正!

由于vc6编译器不支持 定义跟实现分别编译,否则出现link2001的错误。

用的时候,#include"array.cpp"即可

//array.h
/********************************************************************
 自定义array类
1. 判断下标是否越界
2. 用==, != 来判断两个数组是否相等
3.一次输入/输出 整个数组
4.用=运算符把一个数组赋值个另一个数组
********************************************************************
*/


#ifndef ARRAY_H
#define ARRAY_H
#include 
<iostream>
using namespace std;

template
<class Type>
class Array{
  friend ostream
& operator<<(ostream& out, const Array<Type>& a);
  friend istream
& operator>>(istream& input, Array<Type>& a);
private:
  Type 
*data; //array
  int size;   //length of array
public:
  Array(
int sz = 10);  //default constructor
  Array(const Type *x, int length);           //copy constructor
  Array(const Array<Type>& x);    //copy constructor
  ~Array();                       //destructor
  int getLength() const;                   //get length of this array

  Array
<Type>& operator=(const Array<Type>& a);   //copy: ar1 = ar2;
  
  Type
& operator[](int i);        //array[i] = n;
  const Type& operator[](int i) const;   //int n = array[i];

  
bool operator==(const Array<Type>& a);
  
bool operator!=(const Array<Type>& a);  
}
;
#endif

//array.cpp
#include "array.h"
#include 
<cassert>
#include 
<iomanip>

template
<class Type>
ostream
& operator<<(ostream& out, const Array<Type>& a){
  
for(int i = 0; i < a.size; i++)
    
out << setw(4) << a.data[i];
  
return out;
}


template
<class Type>
istream
& operator>>(istream& input, Array<Type>& a){
  
for(int i = 0; (i < a.size); i++){
    input 
>> a.data[i];
  }

  
return input;
}


template
<class Type>
Array
<Type>::Array(int sz){
  size 
= (sz > 0 ? sz : 10); //validate size
  data = new Type[size];
  assert(data);

  
//initialize array
  for(int i = 0; i < size; i++)
    data[i] 
= 0;
}


template
<class Type>
Array
<Type>::Array(const Type *x, int length){
  size 
= length;
  data 
= new Type[length];
  assert(data);
  
for(int i = 0; i < size; i++)
    data[i] 
= x[i];
}


template
<class Type>
Array
<Type>::Array(const Array<Type>& x){
  size 
= x.size;
  data 
= new Type[size]; //create space for arrya
  assert(data);
  
for(int i = 0; i < size; i++)//copy one by one
    data[i] = x.data[i];
}


template
<class Type>
Array
<Type>::~Array(){
  delete[] data;
}


template
<class Type>
int Array<Type>::getLength() const{
  
return size;
}


template
<class Type>
Array
<Type>& Array<Type>::operator=(const Array<Type>& a){
  
if(*this != a){    //self-copy
    if(size != a.size){ // different size
      delete[] data;
      size 
= a.size;
      data 
= new Type[size];
      assert(data);
    }

    
for(int i = 0; i < size; i++)
      data[i] 
= a.data[i];
  }

  
return *this;
}


template
<class Type>
const Type& Array<Type>::operator[](int i) const{
  assert(i
>=0 && i <size);
  
return data[i];
}


template
<class Type>
Type
& Array<Type>::operator[](int i){
  assert(i
>=0 && i <size);
  
return data[i];
}


template
<class Type>
bool Array<Type>::operator ==(const Array<Type>& a){
  
if(size != a.size) //judge size
    return false;
  
for(int i = 0; i < size; i++) //judge element
    if(data[i] != a.data[i])
      
return false;
  
return true;
}


template
<class Type>
bool Array<Type>::operator !=(const Array<Type>& a){
  
return !(*this == a);
}

【Unity 05】C# Array类及其使用方法 PS:本系列笔记将会记录我此次在北京学习Unity开发的总体过程,方便后期写总结,笔记为天更。 笔记内容均为 自己理解,会有遗漏处,不保证每个都对,仅供参考 Part 1 Array类: 简介: Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array 类提供了各种用于数组的属性和方法。 Arrary类的主要方法: 方法 作用 Indexof(Ar... 阅读详情

相关推荐

Java反射中的Array类,java.lang.reflect包下的Array类

今天我们聊一聊java.lang.reflect包下的Array类,重点关注其中的newInstance方法。 1、Array类的简单使用 java.lang.reflect包下除了提供Method(方法)、Constructor(构造器)、Filed(成员变量)这三个类,还提供了Array类,Array对象可以代表所有的数组,可通过Array类来动态创建数组,该类提供了以下类方法: ...

kqZhu的博客 1304

别再手动写矩阵运算了!Eigen库的Array类与Matrix类混用指南与性能对比

本文深入解析Eigen库中Array类与Matrix类的核心区别与最佳混用实践,通过性能对比揭示Array在逐元素操作中的优势及Matrix在线性代数中的不可替代性。提供显式转换、表达式优化等实用技巧,帮助开发者避免常见陷阱,提升C++数值计算代码的效率与可读性。

weixin_27972919的博客 231

独立游戏开发者必看:STEAM税务信息更新全流程(附中国区避坑指南)

本文为独立游戏开发者详细解析了Steam税务信息更新的全流程,重点针对中国区开发者提供了避坑指南。文章深入解释了W-8BEN表格的填写要点,并指导如何准备个人所得税纳税记录和身份证等核心证明文件,以确保顺利通过审核,避免收入被预扣税款。

tcp8optimizer的博客 1287

自写Array类

#include<iostream> #include<iostream> using namespace std; class Array { public: Array(int num) :size(num) { if (num) { this->pArr = new int[num]; } } Array(const Array& a) :size(a.si...

qq_57558831的博客 126

别再死记硬背MAML原理了!用PyTorch手撸一个Omniglot小样本分类器(附完整代码)

本文详细介绍了如何使用PyTorch实现MAML(模型无关的元学习)算法,构建一个Omniglot小样本分类器。通过实战代码演示,帮助读者理解MAML的双层优化原理,并提供了完整的训练循环、网络架构设计及调试技巧,适合想要掌握元学习技术的开发者。

weixin_29191669的博客 131

carsim与simulink联合仿真学习笔记(二)——使用C-class车模做driver model仿真(5 driver sensors)

Driver model 在carsim的Simulink库中自带外部驾驶员模型,打开后如图所示: 然后打开carsim中对应的数据集,如图所示: 具体仿真步骤不在赘述,注意到这里选择的是E-Class车模,那么如果我想选择C-Class车型进行仿真呢?点三角选择车型可以看到: 马赛克部分是我后来建的,如过没有使用过是没有马赛克部分的。那么既然这里没有C-class,又该怎么办呢? 创建C-...

xufuqiang2017的博客 4116

数据结构——自定义动态数组类Array

Java为我们提供了ArrayList、LinkedList等类,里面的一些方法让我们能很方便的对常见的数据结构进行增删改查(add\remove\set\get)。下面让我们尝试自己实现一个动态数组类Array。 一、Array的结构 虽然是数组类,但类里面还是依靠数组来存储,所以给Array一个成员变量E[] data数组来存放数据。并且为了方便的知道当前数组中存放了多少元素,我们给Array...

TTT12137的博客 1320

使用electron静默打印

使用electron静默打印 1.使用electron打印的理由 很多情况下程序中使用的打印都是用户无感知的。并且想要灵活的控制打印内容,往往需要借助打印机给我们提供的api再进行开发,这种开发方式非常繁琐,并且开发难度较大。 electron提供的打印api可以非常灵活的控制打印设置的显示,并且可以通过html来书写打印内容。 2.api ele...

w1366352655的博客 945

自定义数组类

在学习c++的过程中,我们经常使用到数组,那怎么去定义一个类去实现数组的功能呢? 我们先列除一些经常对数组进行的一些操作, 1、 创建一个指定容量的数组 2、 用已有的数组初始化另一个数组 3、 用已有的数组给另一个数组赋值 4、 给数组添加元素/给数组元素赋值 5、 获取数组指定元素的值 6、 输入一定数量的值,将值赋给数组 7、 输出数组 …… 还有很多,本次只实现以上功能

思不凉 2465

大模型训练(1):流水线并行

Gpipe的方法是,在训练时计算和运用的是micro-batch里的均值和方差,但同时持续追踪全部mini-batch的移动平均和方差,以便在测试阶段进行使用。流水线并行的核心思想是:在模型并行的基础上,进一步引入数据并行的办法,即把原先的数据再划分成若干个更小的batch,分批送入GPU进行训练,算一部分就让下一个GPU动起来。从实验结果可知,在关掉NVlinks的情况下,Gpipe一样也能实现随着GPU数量的增加,训练速度也增加的效果。前文说过,随着模型的增加,每块GPU中存储的中间结果也会越大。

呆呆象呆呆的博客 1970

一、数学建模层次分析法(AHP)【清风数学建模个人笔记】

层次分析法: 层次分析法主要用于解决评价类问题(例如:选择哪种方案更好、哪位员工、运动员等表现得更优秀) 评价类问题: 分析问题得出评判问题的子标,分别给不同子标赋予权重(权重和要为1) ...

m0_58882109的博客 1万+

自己写的CArray类

myArray.h: #pragma once template class myArray { public: myArray(void); ~myArray(void); private: int m_nSize;//数据长度(也就是实际占用数组的内容的长度) int m_nCount;//资源数量(也就是数组的长度) TYPE* m_pDa

CppPlayer 852

Chrome下载B站视频字幕的插件

本文主要介绍了Chrome下载B站视频字幕的插件,希望能对使用Chrome的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 3万+

自定义数组Array

package com.example.lib; public class Array { private int [] data; private int size; //构造 public Array(int capacity){ data = new int[capacity]; size=0; } public Array() { this(10); } //添加末尾 pu

Chents 477

无人机视觉锁定与目标跟踪技术深度解析(含完整代码)

本文介绍了无人机视觉锁定系统的核心技术实现,包括系统架构、目标检测与跟踪算法。系统采用YOLOv5进行初始目标检测,结合手动框选作为备选方案。在跟踪环节对比了KCF、CSRT等传统方法和SiamFC等深度学习算法,最终选用CSRT作为CPU平台最优方案。文章详细解析了相关滤波跟踪的数学原理,并提供了目标检测器和跟踪器的Python实现代码。该系统能有效处理目标遮挡、光照变化等挑战,为无人机自主跟踪提供了实用解决方案。

电脑管家 686

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

学习C++时候写的一个简单Array类

array.h类接口// Class automatically generated by Dev-C++ New Class wizard/*?* 数组的抽象数据类型,可以实现:?* 1、下标准范围检查?* 2、下标运算?* 3、数组的赋值?* 4、数组比较?* 5、数组的输入/输出?* 6、数组知道自身的大小?*/?#ifndef ARRAY_H#define ARRAY_H#includ

潘伟的专栏 2167

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java 覆写_Java 继承与覆写功能的实现

Java 继承与覆写功能的实现下面这个代码,首先满足以下几个条件:绝对不改变客户端已有的使用方法。子类为了要维持方法功能的持续完善,所以必须要根据实际情况进行父类方法的覆写要求定义一个数组操作类(Array类),在这个类里面,可以进行整型数组的操作,由外部传入数组的大小,并要求实现数据保存,以及数据的输出,随后在这个类上要求派生出一个子类:排序类:通过此类取得数据可以排序,代码如下:(使用方法:将...

weixin_35523284的博客 234

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java学习——继承与覆写

Java中的继承使用extends关键字实现,形式为:class 子类 extends 父类{} 继承的优点: 子类可以直接对父类的操作继续使用,属于代码重用。 子类可以继续扩充属于自己的标准。 但是Java中的继承有一定的限制: Java不允许多重继承,但是允许多层继承。 子类在继承父类的时候严格来讲会继承父类中的所有操作,但是对于所有的私有操作属于隐式继承,对于所有的非私有操作属于显...

独一无二的我的专栏 326

写时复制

import UIKit import Foundation /swift 写时复制**/ func print(address o: UnsafeRawPointer ) { print(String(format: “%p”, Int(bitPattern: o))) } var array1: [Int] = [0, 1, 2, 3] var array2 = array1 print(ad...

weixin_38885024的博客 316

Java 综合实战:数组操作(开发反转类)

class Array { private int[] data; private int foot; public Array(int len) { if (len &gt; 0) { this.data = new int[len]; } else { this.data = new int[1]; } } public boolean add(int n...

Java软贱攻城狮 480

C++Array类手写

#ifndef _ARRAY_LIST_ #define _ARRAY_LIST_ #pragma warning (disable : 26444) #pragma warning (disable : 6386) #include <iterator> template<typename T> class arraylist{ ...

bangdian1728的博客 285

类里如何使用array_map

array_map的例子是这样的 array_map("myfunction",$data) 在类里你这样写 array_map($this->myfunction(), $data); 恭喜你:答错了! 正确答案是: array_map(array($this, 'myfunction'), $data); ...

weixin_33963594的博客 464

一个让人灵光一闪的数组C++类Array设计,可以此作为范本进行其他的C++类编写

一个基于指针和重载操作符的数组类设计Array,可以进行数组范围检查,与平常看到的类而言,这个类的编写让人感觉逻辑十分清晰,以及更加可以理解面向对象程序设计理念。 Arry.h /*-----防止类头文件重复包含--------------------------------------*/ #ifndef ARRAY_H #define ARRAY_H /*-----包含输入输出流头...

HW140701的博客 1171

C#中Array类精讲

文章目录一、Array类概念二、Array类属性三、Array类方法 一、Array类概念 Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array 类提供了各种用于数组的属性和方法,可看作扩充了功能的数组(但不等同数组),可以使用Array类的属性来对数组进行各种操作。 数组的容量是固定的,而ArrayList的容量可以根据需要自动扩充。 ArrayList提供添加,删除和插入某一范围元素的方法,但在数组中,只能一次获取或设置一个元素。 ArrayList提供将只读和

路虽远,行则必至! 3031

C#的Array 类使用说明

C#的Array类的使用说明

零点工程师的博客 5987

十八、Array 类

java Arrays

追梦的土豆的博客 954
上一篇: winpcap开发包使用中的问题总结
下一篇: 函数重载(读书笔记)
bluebubble
博客等级 码龄23年 28粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值