我是C ++的新手,我正在尝试创建一个具有4个功能(插入,删除,搜索和打印)的动态数组。我设法做插入部分,但不知道如何继续使用'删除'功能。
这是我想要实现的目标:
这是我的数组头文件
#ifndef ARRAY
#define ARRAY
namespace SDI
{
typedef int StoredData;
class Array
{
private:
int Capacity;
int size;
StoredData * bufferPtr;
public:
Array();
~Array();
void insert (int addData);
void remove (int removeData);
int search (int searchData);
void print();
};
}
#endif
void SDI::Array::remove(int removeData)
{
for(int i = 0; i<size; i++)
{
if(bufferPtr[i] == removeData)
{
removeData = bufferPtr[i];
int newSize = size -1;
//copy existing data
//delete removeData
//print array list without the deleted element
}
}
}
任何建议表示赞赏
感谢
答案 0 :(得分:0)
这可能会对您有所帮助:
void SDI::Array::remove(int removeData)
{
for(int i=0;i<size;i++)
{
if(bufferPtr[i] == removeData)
{
for(int j=i+1;j<size;j++)
{
bufferPtr[j-1]=bufferPtr[j];
}
size--;
int newSize = size-1;
break;
}
}
printf(bufferPtr);
}
答案 1 :(得分:-1)
您无法动态或以其他方式调整数组大小。如果您希望真正删除数组中的元素。您必须创建一个相同的数组,该数组已正确调整大小以替换旧数组。