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

STL Iterators - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевод из кодировки UTF - 8 в ANSI http://www.cyberforum.ru/cpp-beginners/thread634420.html
Всем привет! Пишу прогу на линухе, результаты работы вывожу в html файл. Так вот когда открываю файл для прочтения с помощью браузера там иероглифы, с помощью текстового редактора в linux то все ок....
C++ Книги для использования оконных приложений Всем привет. Консольные приложение это хорошо, но я уже прочитал книгу, и более менее знаю азы c++. Но хотелось бы создавать уже нормальные, красивые приложения с использованием Windows Forms... http://www.cyberforum.ru/cpp-beginners/thread634416.html
C++ Разыменования указателя
Добрий день подскажите пожалуйса можно ли разыменовать такое вот виражения pt->str char*pt-указатель str объект класса _bstr_t нужно получить данные которые находятся в str если сделать вот так...
C++ Засада с машинным эпсилон, или Либо я дурак
Эту задачку выполняют все начинающие. Так вот, берём два простеньких кода. Они настолько коротки, тупы и очевидны, что я даже не комментировал их. Первый, работает нормально. #include...
C++ Тема: Записи. Работа с текстовыми файлами http://www.cyberforum.ru/cpp-beginners/thread634393.html
Тема: Записи. Работа с текстовыми файлами. Дан файл f, содержащий сведения о багаже нескольких пассажиров. Багаж пассажира характеризуется количеством вещей и общим весом вещей. Сведения о багаже...
C++ Отобразить вектор в обратном порядке не используя реверсивные итераторы Отобразить вектор в обратном порядке не используя реверсивные итераторы никак не могу в цикле вывести последний(самый первый) элемент подробнее

Показать сообщение отдельно
Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
09.08.2012, 21:26  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
Leeto, В VS тоже не работает... Ща придумаю что-нибудь.
Осталось разобраться с суммой между контейнерами
update code :
main
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
 
#include <vector>
#include <list>
#include <map>
 
 
 
template<typename Iterator>
double get_el(Iterator i, const typename Iterator::value_type&)
{
   return *i;
}
 
 
template<typename Container>
double Sum(const Container& cnt)
{
   typedef typename Container::const_iterator c_iter;
   double Sum = 0;
   for (c_iter i = cnt.begin(); i != cnt.end(); ++i)
       {
          Sum += get_el(i, *i);
       }
   return Sum;
}
 
        template <typename T, typename T1> 
        double Sum (const std::map<T, T1>& MyMap)
            {
                double sum_of_MyMap_elements = 0 ;
 
                std::map<T, T1>::const_iterator iMyMapIterator=MyMap.begin();
 
                    while (iMyMapIterator!=MyMap.end())
                        {
                            sum_of_MyMap_elements += iMyMapIterator++ -> second;
                        }
                return sum_of_MyMap_elements;
            }
 
            template <typename FirstSummandContainer,typename SecondSummandContainer>
            double Sum (FirstSummandContainer& ObjFirstSummandContainer, 
                SecondSummandContainer& ObjSecondSummandContainer)
                {
                    return Sum(ObjFirstSummandContainer) + Sum(ObjSecondSummandContainer);
                }
 
 
int
main()
{
    // typedef std::vector< double > double_container_t;
     typedef std::list< double > double_container_t;
    typedef std::map< double,double > double_M_container_t;
 
     double_container_t MyContainer;
     double_M_container_t MyMap;
            for (int i=0;i<10;i++) 
                {
                    MyContainer.push_back(i);
                    MyMap[i] = i*10; 
                }
 
 
            
    std::cout << "Vector or List sum = " << Sum(MyContainer ) << '\n';
    std::cout << "Map sum = " << Sum(MyMap ) << '\n';
 
    std::cout << "Map+Vecor or List sum = " << Sum(MyContainer, MyMap ) << '\n';
 
    return 0;
 
}


сейчас это выглядит вот так

C++
1
2
3
4
5
6
template <typename FirstSummandContainer,typename SecondSummandContainer>
            double Sum (FirstSummandContainer& ObjFirstSummandContainer, 
                SecondSummandContainer& ObjSecondSummandContainer)
                {
                    return Sum(ObjFirstSummandContainer) + Sum(ObjSecondSummandContainer);
                }
а надо чтоб было

Also create a Sum() function that calculates the sum between two iterators. The function then uses the template argument for the iterator type and accepts two iterators, the start and end iterator

ща перевод найду он где то вверху был

Добавлено через 1 минуту
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Уроки литературного перевода
Используя итераторы, мы можем перемещаться по контейнеру STL, ничего не зная о самом контейнере. В этом упражнении вам предлагается реализовать функцию, вычисляющую сумму элементов типа double, хранимых в контейнере.
  • Создайте шаблонную функцию Sum(), которая принимает шаблонный аргумент типа T и возвращает double. Этот аргумент — это контейнер.
  • В функции получите итератор (T::const_iterator), указывающий на конец контейнера. Затем пройдитесь в цикле по контейнеру и сложите значения его элементов. Наконец, верните из функции сумму.
  • В главной программе вызовите Sum() для контейнера, отличающегося от применённого в предыдущем упражнении.
Данная функция Sum() вычисляет сумму всего контейнера. Также реализуйте Sum(), которая бы вычисляла сумму элементов между двумя итераторами. Шаблонный тип функции будет типом двух принимаемых итераторов, указывающих на начало и конец суммируемого региона.
вот перевод литературный ))) спасибо товарищу

Также реализуйте Sum(), которая бы вычисляла сумму элементов между двумя итераторами. Шаблонный тип функции будет типом двух принимаемых итераторов, указывающих на начало и конец суммируемого региона
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru