Как изменить размер строки std :: и иметь такую ​​же емкость?C++

Программы на C++. Форум разработчиков
Anonymous
Как изменить размер строки std :: и иметь такую ​​же емкость?

Сообщение Anonymous »

Если у меня есть пустая строка, и я делаю .resize (), я ожидал, что размер и способность быть таким размером. Это не так в GCC, Clang или MSVC. Запрашивание размера 17 дает вам емкость 30 или 31. И в случае вызова shrink_to_fit (17) как GCC, так и Clang сокращают способность до 17, кроме MSVC, который ничего не делает и оставляет его на 31. Я заметил, что в C ++ 23 есть RESIZIZE_AND_OVERWRITE, и он ведет себя так же. Я думаю, если нет, мне нужно написать свой собственный класс строк.

Подробнее здесь: https://stackoverflow.com/questions/795 ... e-capacity

Вернуться в «C++»