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

Стандартный поток и STL (std::copy to std::cout) - C++

Восстановить пароль Регистрация
 
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
17.12.2013, 09:55     Стандартный поток и STL (std::copy to std::cout) #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <sstream>
#include <algorithm>
#include <functional>
#include <string>
 
using namespace std;
 
bool contains(std::string word, std::string substring) {
    return word.find(substring) != std::string::npos;
}
 
int main()
{
    std::string s = "word1 word2 enother world",
        sub = "word";
    std::copy(std::istringstream(s), std::istringstream(), std::cout, 
        std::bind2nd(std::ptr_fun(contains), sub));
 
    return 0;
}
Видел много раз похожий финт, только я так и не понял как он работает (у меня представлен нерабочий вариант).
copy_if должна принимать 3 итератора, 2 на исходный диапазон и 1 для вывода результата, только как это сделать....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 09:55     Стандартный поток и STL (std::copy to std::cout)
Посмотрите здесь:

std::copy C++
C++ что использовать std::cout или просто using namespace std?
C++ std::endl; и std::cout"/n"; - одно и то же?
C++ Не работает std::cout || std::cin
В чем разница std::cout и просто cout? C++
Std::cout<<(new class)->something(); C++
C++ Чтение бинарного файла в поток std::ifstream и вывод в другой бинарный файл std::ofstream (создание копии)
Ошибка в std::copy не ясна C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
17.12.2013, 10:35     Стандартный поток и STL (std::copy to std::cout) #2
так наверно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <algorithm>
#include <string>
#include <sstream>
#include <iterator>
 
int main()
{
    std::istringstream iss("aword1 word2 wor d world  4word4");
    std::string sub = "word";
    std::copy_if(std::istream_iterator<std::string>(iss), std::istream_iterator<std::string>(), std::ostream_iterator<std::string>(std::cout, "\n"), [&sub](std::string const& str){return str.find(sub) != std::string::npos;});
    return 0;
}
Yandex
Объявления
17.12.2013, 10:35     Стандартный поток и STL (std::copy to std::cout)
Ответ Создать тему
Опции темы

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