Очистить переполнение стека массива строк

У меня есть 3 функции. Тот, который добавляет контент к каждому массиву, тот, который печатает весь его контекст, и тот, который очищает все строки этого массива. Мой вопрос касается определения функции, которая очищает строковый массив. Мой код удаляет каждый добавленный массив, кроме исходного str [i] или str [0] (первый слот в массиве, который содержит добавленную строку первым). Что мне нужно добавить? Я что-то пропустил. Я бы скорее все очистил, чем установил для каждого слота массива значение NULL или str [i] == «»;

Вот моя попытка:

void StringList::clear()
{
for(int i=0;i<=numberOfStrings;i++)
{
for(int j=i;j<=numberOfStrings-1;j++)
{
str[j] = str[j+1];

}

numberOfStrings--;
}cout<<"All strings cleared"<<endl;
}

Код очищает все, кроме первой добавленной строки. Мысли? Вероятно, это очень просто, и мой мозг не работает должным образом, но все, что я искал, не работает.

Есть ли способ очистить его без петли? и просто с помощью str [numberOfStrings]?

0

Решение

std::string имеет функцию clear (), так что это все, что вам нужно для вызова каждого элемента, кроме первого:

void StringList::clear()
{
// Start from 1 so that we won't clear the first string.
for(int i = 1; i <= numberOfStrings; i++) {
str[i].clear();
}
cout << "All strings cleared" << endl;
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector