Форум программистов, компьютерный форум 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++ Отобразить вектор в обратном порядке не используя реверсивные итераторы Отобразить вектор в обратном порядке не используя реверсивные итераторы никак не могу в цикле вывести последний(самый первый) элемент подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
07.08.2012, 19:42
Че-нить типа такого можно намутить.

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
#include <iostream>
#include <vector>
#include <map>
 
template<typename Iterator>
double get_el(Iterator i, const typename Iterator::value_type&)
{
   return *i;
}
 
template<typename T, typename T2, typename Iterator>
double get_el(Iterator i, const std::pair<const T, T2>&)
{
   return i->second;
}
 
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;
}
 
int main()
{
   std::vector<double> v = {1,2};
   std::cout << sum(v) << std::endl;
   std::map<int, double> m = 
   {
     std::make_pair(1, 1.0),
     std::make_pair(2, 2.0)
   };
   std::cout << sum(m) << std::endl;
}
http://liveworkspace.org/code/d3c4c1...a816c36c597b22

Или сделать функцию от двух итераторов, но все равно нужно будет некое подобие перегрузок функции get_el.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru