Если у меня есть пустая строка, и я делаю .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
Как изменить размер строки std :: и иметь такую же емкость? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение