2015-03-10 3 views
-2

Я хочу создать новый массив, который имеет size - 1, чем мой «основной массив». И есть проблема, я не могу объявить string newArray[oldArray.length()-1].C++ Возможно ли «удалить» элемент из массива?

Возможно ли это в C++?

+6

Используйте 'std :: vector'. Во-первых, он имеет функцию 'size', которая устраняет проблему вашего примера, вызывающего' length' на то, что не является классом (предполагая, что 'oldArray' является встроенным массивом). – chris

+0

Спасибо, но проблема в следующем: мой массив - это массив символа строки i, означающий: string str = "ABC"; и я хочу, чтобы co удалял «A» и имел str = «BC»;/ – user3608003

+2

'std :: string' имеет' erase() 'и' replace() 'методы для удаления/замены символов:' str.erase (0, 1) 'или' str.replace (0, 1, "") '. Или используйте его метод 'substr()' для создания нового значения 'std :: string':' str = str.substr (1) '. –

ответ

3

Нет, удалить элемент из статического массива невозможно. Однако вы можете сдвинуть последующие элементы на один слот, а затем проигнорировать последний слот. Вы можете использовать отдельную переменную, чтобы отслеживать количество используемых элементов в массиве.

В качестве альтернативы используйте std::vector для создания динамического массива.

Смежные вопросы