Что я могу использовать вместо std :: string :: pop_back в старом стандарте C ++?

0

Я использую Visual C++ 2008. Я не могу использовать pop_back потому что он стал функцией-членом класса string в C++ 11.

Что я могу использовать вместо этого, поскольку не могу использовать pop_back?

Теги:
visual-studio-2008
c++03

4 ответа

6
Лучший ответ

Вы можете использовать std::string::erase, который я лично нахожу немного более понятным семантически, чем альтернатива resize:

if (!s.empty())
  s.erase (s.size()-1);
  • 0
    Хорошая точка зрения. Я продолжаю забывать об этой перегрузке.
5

Вы можете использовать std::string::resize:

if (!s.empty())
  s.resize(s.size()-1);
1

Я не совсем понял ваш вопрос, но если вы хотите добавить что-то в std :: string, вы можете использовать

станд :: строка :: Append

и если вы хотите "сжать" его, вы можете использовать

станд :: строка :: изменение размера

1

Есть как минимум две возможности. Либо использовать стирание функции члена, либо изменить размер члена. например

s.erase( s.size() - 1 );

или

s.resize( s.size() - 1 );

Если вы не хотите использовать push_back, вы можете заменить его на оператор + или добавить функцию-член.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню