C++ 删除动态数组C+中的单个元素+;
我正在制作一个字符串数组,包含100个元素。我在.h文件中创建了数组:C++ 删除动态数组C+中的单个元素+;,c++,arrays,pointers,C++,Arrays,Pointers,我正在制作一个字符串数组,包含100个元素。我在.h文件中创建了数组: const int N = 100; typedef struct { int size = 0; string *list = new string[N]; } tStringList; 然后在.cpp文件中,我为数组实现了函数insert、search、remove和print。但是我不知道如何删除函数remove中数组pos位置的元素。我尝试了这个,但它给了我错误: void remove(tStringList
const int N = 100;
typedef struct {
int size = 0;
string *list = new string[N];
} tStringList;
然后在.cpp文件中,我为数组实现了函数insert
、search
、remove
和print
。但是我不知道如何删除函数remove
中数组pos
位置的元素。我尝试了这个,但它给了我错误:
void remove(tStringList & stringList, int pos){
delete stringList.list[pos];
stringList.size--;
}
如何删除动态数组中的单个元素?您不必删除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--;
}
}
void删除(tStringList&stringList,int pos){
如果(位置=0){
对于(int i=pos;i
这是不可能的。C++中的新的和删除的IST不推荐,使用像STD::VoCtor的容器。您需要将元素从<代码> POS + 1 直到