我正在制作一个包含100个元素的字符串数组。我在我的.h文件中创建了数组:
const int N = 100;
typedef struct {
int size = 0;
string *list = new string[N];
} tStringList;
然后在我的.cpp文件中,我为数组实现了函数insert
,search
,remove
和print
。但我不知道如何删除函数pos
中数组位置remove
的元素。我尝试了这个,但它给了我错误:
void remove(tStringList & stringList, int pos){
delete stringList.list[pos];
stringList.size--;
}
如何删除动态数组中的单个元素?
答案 0 :(得分:1)
你不必删除pos处的元素,你应该只在pos之后移动所有元素:
void remove(tStringList & stringList, int pos){
if(pos < stringList.size && pos >= 0){
for(int i = pos; i < stringList.size - 1; i++){
stringList.list[i] = stringList.list[i+1];
}
stringList.size--;
}
}