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

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

Войти
Регистрация
Восстановить пароль
 
tapochka
34 / 34 / 8
Регистрация: 25.04.2014
Сообщений: 459
#1

For_each не меняет входной контейнер - C++

02.09.2015, 01:48. Просмотров 191. Ответов 3
Метки нет (Все метки)

здравствуйте есть код который нужно сделать с помощью std::for_each без c++11 и boost:
C++
1
2
3
4
5
6
7
8
9
10
std::list<UnicodeString> map;
map.push_back("hello");
map.push_back("slowly");
map.push_back("world");
map.push_back("!");
std::list<UnicodeString>::iterator begin = map.begin();
std::list<UnicodeString>::iterator end = map.end();
for(; begin !=end; begin++) {
    *begin = *begin + " ";
}
UnicodeString - строка из c++ builder с имеющимся оператором плюс...
пытался сделать так, но ничего не удалось - элементы листа не поменялись:
C++
1
std::for_each(map.begin(), map.end(), std::bind2nd(std::mem_fun_ref(&UnicodeString::operator+), " "));
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2015, 01:48     For_each не меняет входной контейнер
Посмотрите здесь:

For_each C++
C++ STL библиотека. Ф-ция for_each
for_each и деструкторы C++
C++ метод в for_each
C++ Написание функции для for_each
Почему for_each() не выводит кирилицу C++
Заменить все for на for_each C++
Как использовать инструкцию for_each ? C++
C++ Как вызвать метод для for_each?
C++ c++ for_each и вызов функции
Ошибка при использовании for_each для вектора C++
C++ Опять непонятки с for_each

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12510 / 7072 / 794
Регистрация: 27.09.2012
Сообщений: 17,465
Записей в блоге: 2
Завершенные тесты: 1
02.09.2015, 03:09     For_each не меняет входной контейнер #2
C++
1
std::transform(map.begin(), map.end(), map.begin() , std::bind2nd(std::plus<UnicodeString>(), " ")) ;
tapochka
34 / 34 / 8
Регистрация: 25.04.2014
Сообщений: 459
02.09.2015, 03:11  [ТС]     For_each не меняет входной контейнер #3
Croessmah, а с for_each совсем не удастся?
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12510 / 7072 / 794
Регистрация: 27.09.2012
Сообщений: 17,465
Записей в блоге: 2
Завершенные тесты: 1
02.09.2015, 03:25     For_each не меняет входной контейнер #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от tapochka Посмотреть сообщение
с for_each
C++
1
2
3
4
5
6
7
8
9
struct mp : public std::binary_function < UnicodeString , const UnicodeString , void >
{
    result_type operator() ( first_argument_type & str , second_argument_type & add_str ) const
    {
        str += add_str ;
    }
} ;
//...
std::for_each(map.begin(), map.end(), std::bind2nd( mp() , " ") ) ;
Yandex
Объявления
02.09.2015, 03:25     For_each не меняет входной контейнер
Ответ Создать тему
Опции темы

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