删除动态数组C ++中的单个元素

时间:2017-04-28 08:41:06

标签: c++ arrays pointers

我正在制作一个包含100个元素的字符串数组。我在我的.h文件中创建了数组:

const int N = 100;

typedef struct {
int size = 0;
string *list = new string[N];
} tStringList;

然后在我的.cpp文件中,我为数组实现了函数insertsearchremoveprint。但我不知道如何删除函数pos中数组位置remove的元素。我尝试了这个,但它给了我错误:

void remove(tStringList & stringList, int pos){

delete stringList.list[pos];
stringList.size--;
}

如何删除动态数组中的单个元素?

1 个答案:

答案 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--;
    }
}