Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116

Не правильно работает erase + remove

04.10.2014, 17:22. Показов 3086. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
мне надо удалить из строки все пробелы, я сделал так:
C++
1
2
3
std::string expr;
...
expr.erase(std::remove(expr.begin(), expr.end(), ' '));
на вход (expr) подается выражение, например "10 + (12 * 3) / 5", а на выходе я получаю "10+(12*3)/5) / 5"... почему??? должно вроде все нормально быть
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.10.2014, 17:22
Ответы с готовыми решениями:

Erase-remove idiom: идиома tuple
#include <tuple> #include <iostream> #include <vector> #include <ctime> #include <algorithm> int main() { std::vector<...

<vector> , erase , remove
Есть контейнер - вектор. В нём нужно удалить первые 300 значений. Погуглил нашел v.erase( remove( v.begin(), v.end(), 2 ),...

Не работает функция erase
Здравствуйте, не получается запустить программу из-за функции erase, компилятору что-то не нравится. Помогите пожалуйста #include...

7
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
04.10.2014, 17:34
Лучший ответ Сообщение было отмечено GetHelp как решение

Решение

GetHelp, erase от одного аргумента удаляет только один элемент.
C++
1
expr.erase(std::remove(expr.begin(), expr.end(), ' '), expr.end());
1
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
04.10.2014, 17:53  [ТС]
а еще такой вопрос: есть вектор (std::vector) из строк (std::string), как найти количество элементов в векторе равных заданной строке? через std::find думаю, только не выходит реализовать...
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
04.10.2014, 17:56
Цитата Сообщение от GetHelp Посмотреть сообщение
как найти количество элементов
std::count
1
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
04.10.2014, 18:00
C++
1
int result = std::count(v.begin(), v.end(), value);
0
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
04.10.2014, 18:08  [ТС]
и последнее (наверное ) я иду в цикле по строке (std::string), и мне надо в вектор из строк добавить один конкретный символ этой строки, что делать? я в принципе реализовал так уже: создаю темповую переменную типа char*, выделяю память на 2 элемента, в 0 элемент записываю символ, в 1 элемент 0 (конец строки), запихиваю в вектор, удаляю выделенную память... но может можно проще? а то перегрузки для одного символа у конструктора std::string вроде бы нет
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
04.10.2014, 18:11
Цитата Сообщение от GetHelp Посмотреть сообщение
а то перегрузки для одного символа у конструктора std::string вроде бы нет
http://en.cppreference.com/w/c... sic_string
Конструктор (2)
1
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
04.10.2014, 18:15  [ТС]
Цитата Сообщение от 0x10 Посмотреть сообщение
http://en.cppreference.com/w/cpp/str...g/basic_string
Конструктор (2)
ааа все понял, там просто еще количество символов походу указывалось перед самим символом... поэтому я его не заметил
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.10.2014, 18:15
Помогаю со студенческими работами здесь

list не работает erase
void in_out_Park(list&lt;Bus&gt; &amp;in, list&lt;Bus&gt; &amp;out) { int n, i=0; Bus temp; cout&lt;&lt;&quot;Введите номер автобуса: &quot;; cin&gt;&gt;n; ...

Реализовать аппликативный оператор MY-REMOVE-IF с интерфейсом и семантикой, аналогично стандартному REMOVE-IF
Реализовать аппликативный оператор MY-REMOVE-IF с интерфейсом и семантикой, аналогично стандартному REMOVE-IF.

Функция remove() удаляет только заранее запланированые файлы, выдавая ошибку на remove (STRING)
Салем, начал изучать файловую работу в С++, и столкнулся с такой проблемой, что функция remove() соглашается удалять только заранее...

Remove() не работает
Доброй ночи) помогите разобраться с проблемой. https://jsfiddle.net/qp3nnfc5/ - тут проблема следующая. Не удаляет элемент списка...

Почему не работает Remove
добрый день, можете подсказать почему не срабатывает удаление из списка: using System; using System.Collections.Generic; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru