Форум программистов, компьютерный форум, киберфорум
Наши страницы

unordered_multimap - интервальный конструктор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ «Массив структур» http://www.cyberforum.ru/cpp-beginners/thread917430.html
Написал программу на написание функции чтения в массив структур из файла. Данные «Пациент». Программа не работает, а именно при компиляции выбрасывает из программы, либо идёт её завершение. Не могу...
C++ Помогите написать программу простого словаря Люди помогите, нужно сдать последнюю Лабу. Задача: Составить программу простейшего автоматизированного англо – немецко – русского словаря, данные словаря хранятся в файле. Программа должна... http://www.cyberforum.ru/cpp-beginners/thread917426.html
C++ Перевести код на c++
Всем привет! Столкнулся с такой проблемой... есть код на freebasic нужно его перевести на с++... Ну вот что-то никак не выходит... Я не знаком с бейсиком, ну да ладно бы это... но там какие-то...
C++ Поясните ошибку, связанную с константой.
Делаю в VS 2012 #include "stdafx.h" #include <iostream> using namespace std; int main( int argc, char** argv ) { const int n=5;
C++ Разделение программы на несколько файлов http://www.cyberforum.ru/cpp-beginners/thread917395.html
Всем доброго времени суток! Возникла проблема - я написал небольшую програмку в main. #include <stdio.h> #include <stdlib.h> #include <conio.h> int main ()
C++ Библиотека классов, реализующих комплексную арифметику Могли бы помочь мне с заданием? Нужно создать приложение Windows c формами, которое использует созданную нами динамическую библиотеку для вычисления суммы, разности, произведения и частного двух... подробнее

Показать сообщение отдельно
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
04.07.2013, 14:19
Кое что переделал. Думаю так будет лучше:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
template <typename value_type, typename property_type>
class istream_iterator_pair: public std::iterator<std::input_iterator_tag, value_type>
{
    using input_value_iter = std::istream_iterator<value_type>;
    using Func = std::function<property_type(const value_type&)>;
 
    input_value_iter value;
    property_type property;
    Func func;
 
    void updateProperty()
    {
        property = (func != nullptr) ? func(*value) : property_type();
    }
 
public:
 
    istream_iterator_pair():
        value( input_value_iter() ), property(), func(nullptr) {}
 
    istream_iterator_pair(input_value_iter it, Func f):
        value(it), property(), func(f) { updateProperty(); }
 
    istream_iterator_pair(const istream_iterator_pair &x):
        istream_iterator_pair(x.value, x.func) {}
 
    istream_iterator_pair& operator ++ ()
    {
        ++value;
        updateProperty();
        return *this;
    }
 
    istream_iterator_pair operator ++ (int)
    {
        istream_iterator_pair temp(*this);
        ++*this;
        return temp;
    }
 
    bool operator != (const istream_iterator_pair &x)
    {
        return value != x.value;
    }
 
    std::pair<value_type, property_type>
    operator * () { return {*value, property}; }
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(int argc, char** argv)
{
   std::string text = "constructs the container with the contents of the range";
   std::istringstream iss(text);
 
   auto func = [](const std::string &str){return str.size();};
   using input = std::istream_iterator<std::string>;
   using pair_in = istream_iterator_pair<std::string, size_t>;
 
   std::unordered_multimap<std::string, size_t> words ( pair_in( input(iss), func ),
                                                    pair_in() );
   for (auto& i : words) std::cout<<std::setw(20)<<std::left<<i.first<<" : "<<i.second<<'\n';
 
   return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru