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

STL Iterators - C++

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

Показать сообщение отдельно
Leeto
 Аватар для Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
07.08.2012, 19:13     STL Iterators
Допустим есть проект

ContainerTemplateFunction_hpp
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
#ifndef ContainerTemplateFunction_hpp   // Preprocessor gates
#define ContainerTemplateFunction_hpp
    
        #include <list>
        #include <vector>
        #include <iostream>
        #include <map> 
 
        template <typename T> 
        double Sum (std::list<T>& MyList)
            {
 
                double sum_of_MyList_elements = 0;
 
                std::list<T>::iterator iMyListIterator = MyList.begin();    
                
                
                    while (iMyListIterator != MyList.end()) // A loop that iterates MyList 
                        {
                            sum_of_MyList_elements += *(iMyListIterator++);
                        }
                return sum_of_MyList_elements ; 
            }
 
 
 
        template  <typename T> 
        double Sum (std::vector<T>& MyVector)
            {
                double sum_of_MyVector_elements = 0;
 
                std::vector<T>::iterator iMyVectorIterator = MyVector.begin();  
 
                    while (iMyVectorIterator!=MyVector.end())
                        {
                            sum_of_MyVector_elements += *(iMyVectorIterator++);
                        }
                return sum_of_MyVector_elements;
            }
 
        template <typename T, typename T1> 
        double Sum ( std::map<T, T1>& MyMap)
            {
                double sum_of_MyMap_elements =0 ;
 
                std::map<T, T1>::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);
                }
 
 
 
 
#endif


main.cpp
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include "ContainerTemplateFunction.hpp"
 
int main() 
    {
 
        std::cout   << "\n\n\t\t    --- TEST OF SUM --- " 
                            << "\n\t\t     --- *LIST* --- \n " ;
 
 
        std::cout << "----- sum of list container ----- "<< std::endl;
 
        std::list <int> My_TestSum_List ; 
        for (int i=0;i<10;i++) // filling <list > of elements 
            {
                My_TestSum_List.push_back(i);
            }
 
        std::list<int>::iterator iMy_List_Iterator = My_TestSum_List.begin();
        
        std::cout << "-----Print without accumlating------" << std::endl;
            for (iMy_List_Iterator = My_TestSum_List.begin();
                 iMy_List_Iterator != My_TestSum_List.end() ; ++iMy_List_Iterator)
                {
                    std::cout << (*iMy_List_Iterator) << ", ";
                }
            std::cout << std::endl;
            std::cout << "\ntest of sum function for list :" << Sum(My_TestSum_List)  << std::endl;
 
// __________________________________________________________________________________________
 
            std::cout   << "\n\n\t\t    --- TEST OF SUM --- " 
                            << "\n\t\t      --- *VECTOR* --- \n " ;
        
        std::vector <int> My_TestSum_Vector;
 
            for (int i=0;i<10;i++) 
                {
                    My_TestSum_Vector.push_back(i);
                }
 
        std::vector<int>::iterator iMy_Vector_Iterator = My_TestSum_Vector.begin();
    
            std::cout << "-----Print without accumlating------" << std::endl;
            for (iMy_Vector_Iterator  = My_TestSum_Vector.begin() ; 
                 iMy_Vector_Iterator != My_TestSum_Vector.end(); ++iMy_Vector_Iterator)
                {
                    std::cout << (*iMy_Vector_Iterator) << ", ";
                }
            std::cout << "\ntest of sum function for vector  :"<<   Sum(My_TestSum_Vector)  << std::endl;
// __________________________________________________________________________________________
 
            std::cout       << "\n\n\t\t    --- TEST OF SUM --- " 
                            << "\n\t\t       --- *MAP* --- \n " ;
    
    
        std::map <double, double > My_SumTest_Map;
 
        for (int i=0;i<10;i++) My_SumTest_Map[i] = i*10;
 
        std::map<double, double>::iterator iMy_Map_Iterator = My_SumTest_Map.begin();
    
        std::cout << "\n sum of all MyMap elements  is :"   <<  Sum(My_SumTest_Map) ;
 
        std::cout << "\n-----Print without accumlating------" << std::endl;
 
            for (iMy_Map_Iterator = My_SumTest_Map.begin();
                iMy_Map_Iterator!=My_SumTest_Map.end(); ++iMy_Map_Iterator)
//              for (auto)
                {
                    std::cout   << "\n["    << iMy_Map_Iterator->first  
                                << "] -> " 
                                << "("      << iMy_Map_Iterator->second<<")";
                }
 
            
// __________________________________________________________________________________________
            std::cout   << "\n\n\t\t    --- TEST OF SUM --- " 
                            << "\n\t\t   --- *TWO CONTAINER.* --- \n " ;
 
            std::cout   << "\n Sum between two containers <vector> and <map> is :" 
                        <<Sum(My_TestSum_Vector,My_SumTest_Map) 
 
                        << "\n Sum between two containers <vector> and <list> is :" 
                        <<Sum(My_TestSum_Vector,My_TestSum_List) 
 
                        << "\n Sum between two containers <list> and <map> is :" 
                        <<Sum(My_TestSum_List,My_SumTest_Map) ; 
                        
 
            std::cout << "\n\n\n\t"; 
        return 0;
    }


Хочется чтобы
в ContainerTemplateFunction.hpp было не 3 шаблона для каждого контейнера отдельно, а один шаблон...
как сделать совместный шаблон для вектора и листа более менее понятно как сделать чтобы для карты (мап ) (map) вместе с вектором и листом был один шаблон (ну типа там же 2 аргумента а не один для как для листа и вектора ) подскажите плиз )
Заранее спасибо !
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru