Моя функция удаления действует. Допустим, если я добавлю «Яблоко», «Мальчик», «Кошка» в свой массив. Он сортирует его по алфавиту. Когда я что-то удаляю, давайте скажем «Мальчик», он удаляет его. Но если я вхожу в «Браун», он удаляет «Cat» из моего списка. Он всегда будет удалять один из них под алфавитом, если он не найдет его в списке. Если у меня есть те строки, о которых я говорил выше, и я вхожу в «Собака», ничего не происходит, потому что «Кошка» до «Собака». Есть идеи?Функция удаления не работает должным образом
void StringList::remove(string s)
{
int loc = search(s, 0, numberOfStrings);
if(loc!=-1)
{
for(int i=loc; i<(numberOfStrings)-1; i++)
{
str[i] = str[i+1];
}
numberOfStrings--;
}
}
int StringList::search(string s, int start, int end)
{
for(int i=start; i<=end; i++)
{
if(str[i]>=s)
{
return i;
}
}
return -1;
}
Вы имеете в виду, что он удаляет тот, который по алфавиту * следующий *, если он не может найти точное слово? – feralin