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

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

Восстановить пароль Регистрация
 
tapochka
30 / 30 / 7
Регистрация: 25.04.2014
Сообщений: 412
02.09.2015, 01:48     For_each не меняет входной контейнер #1
здравствуйте есть код который нужно сделать с помощью 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++
for_each и деструкторы C++
C++ метод в for_each
Почему for_each() не выводит кирилицу C++
Заменить все for на for_each C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 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
30 / 30 / 7
Регистрация: 25.04.2014
Сообщений: 412
02.09.2015, 03:11  [ТС]     For_each не меняет входной контейнер #3
Croessmah, а с for_each совсем не удастся?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11811 / 6790 / 767
Регистрация: 27.09.2012
Сообщений: 16,840
Записей в блоге: 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 не меняет входной контейнер
Ответ Создать тему
Опции темы

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