Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,164
Завершенные тесты: 2
#1

std::string + std::remove - C++

30.06.2013, 20:11. Просмотров 855. Ответов 2
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include <algorithm>
 
 
int main()
{
    std::string str("hello, world. have a nice day.");
    std::remove(str.begin(), str.end(), '.');
    std::cout << str;
}
вывод: "hello, world have a nice dayy."

недопонял - почему так? mingw
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2013, 20:11     std::string + std::remove
Посмотрите здесь:

C++ зачем часто писать std:: если можно один раз using namespace std?
std::string -> std::wstring C++
C++ что использовать std::cout или просто using namespace std?
Ошибка: отсутствует оператор ">>"; типы операндов: std::istream >> std::string C++
C++ ошибка в программе (cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*')
Выделение памяти для буффера, под std::istream& operator>>(std::istream &, String &) C++
Как искать по std::vecotr из std::pait по одному значению из пары? C++
C++ Как привести std::wstring к std::string?
C++ Std::string and std::wstring convert
отсутствует оператор "<<" соответствующий этим операндам (std::ostream << const std::string) C++
C++ Как можно еще использовать std::placeholders вне в связки с std::bind?
C++ Почему std::string_view МЕДЛЕННЕЕ, чем std::string?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1479 / 1055 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
30.06.2013, 20:21     std::string + std::remove #2
ремув смещает элементы, подлежащие удалению в конец. он не знает как их удалять из контейнера, т.к. работает только с итераторами, а через них нельзя что-то удалить из контейнера. чтобы удалить, нужно у контейнера звать erase:
C++
1
str.erase(std::remove(str.begin(), str.end(), '.'), str.end());
Croessmah
30.06.2013, 22:24     std::string + std::remove
  #3

Не по теме:

Цитата Сообщение от DU Посмотреть сообщение
ремув смещает элементы, подлежащие удалению в конец.
Смещает остающиеся элементы в начало, соблюдая порядок и не обязан перемещать удаляемые в конец

Yandex
Объявления
30.06.2013, 22:24     std::string + std::remove
Ответ Создать тему
Опции темы

Текущее время: 00:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru