#include<iostream>
#include<cstring>
using namespace std;
class array{
int size;
int *ptr;
public:
array(int s=0);
array(array& a);
~array();
void push_back(int v);
array & operator =(const array &a);
int length() const{
return size;
}
int & operator[] (int i){
return ptr[i];
}
};
array::array(int s):size(s){
if(s==0)
ptr=NULL;
else
ptr=new int[s];
}
array::array(array &a){
if(!a.ptr){
ptr=NULL;
size=0;
return;
}
ptr=new int[a.size];
memcpy(ptr,a.ptr,sizeof(int)*a.size);
size=a.size;
}
array::~array(){
if(ptr)
delete[] ptr;
}
array &array::operator=(const array &a){
if(ptr==a.ptr)
return *this;
if(a.ptr==NULL){
if(ptr)
delete []ptr;
ptr=NULL;
size=0;
return *this;
}
if(size<a.size){
if(ptr)
delete[] ptr;
ptr=new int[a.size];
}
memcpy(ptr,a.ptr,sizeof(int
C++长度可变的整形数组实例(非vector)
最新推荐文章于 2023-08-21 20:53:24 发布
本文详细介绍了如何在C++中创建长度可变的整数数组,不使用std::vector。通过动态内存分配和指针操作,实现了一个灵活的数组类,支持增加、删除和查找元素等基本操作。
摘要由CSDN通过智能技术生成