Я хочу создать новый массив, который имеет size - 1
, чем мой «основной массив». И есть проблема, я не могу объявить string newArray[oldArray.length()-1]
.C++ Возможно ли «удалить» элемент из массива?
Возможно ли это в C++?
Я хочу создать новый массив, который имеет size - 1
, чем мой «основной массив». И есть проблема, я не могу объявить string newArray[oldArray.length()-1]
.C++ Возможно ли «удалить» элемент из массива?
Возможно ли это в C++?
Нет, удалить элемент из статического массива невозможно. Однако вы можете сдвинуть последующие элементы на один слот, а затем проигнорировать последний слот. Вы можете использовать отдельную переменную, чтобы отслеживать количество используемых элементов в массиве.
В качестве альтернативы используйте std::vector
для создания динамического массива.
Используйте 'std :: vector'. Во-первых, он имеет функцию 'size', которая устраняет проблему вашего примера, вызывающего' length' на то, что не является классом (предполагая, что 'oldArray' является встроенным массивом). – chris
Спасибо, но проблема в следующем: мой массив - это массив символа строки i, означающий: string str = "ABC"; и я хочу, чтобы co удалял «A» и имел str = «BC»;/ – user3608003
'std :: string' имеет' erase() 'и' replace() 'методы для удаления/замены символов:' str.erase (0, 1) 'или' str.replace (0, 1, "") '. Или используйте его метод 'substr()' для создания нового значения 'std :: string':' str = str.substr (1) '. –