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

STL Containers - C++

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

Показать сообщение отдельно
Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1

STL Containers - C++

07.08.2012, 19:20. Просмотров 520. Ответов 9
Метки (Все метки)

Допустим есть проект
Как сделать вектор растущим...
насколько я понимаю это надо юзать resize() function мол
VectorDoubles.resize(и тут типа число элементов )

Но вопрос такой... я вот не инициализировал никакое значение в VectorDoubles и начал push_back чить его в цикле и что то он у меня не ругается... т.е. он у меня из без кого растущий получается ??? или я не догоняю какой то момент ???

И если все таки юзать resize() то это получаться в цикле вводить какую то переменную к нему в аргумент и там в же в цикле пушь бекить его или как ???

Заранее спасибо

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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include <iostream>
#include <list>
#include <vector>
#include <map>
#include <string>
 
 
 
void printlist(const std::list<double>& myList)
{
    std::list<double>::const_iterator i;
    for (i = myList.begin(); i != myList.end(); ++i)
        {
                std::cout << *i << "\n"; 
        }
}
 
int main()
    {
                std::cout       << "\n\t --- Level 7. Overview of the STL --- \n"
                                << "\t --- Exercise 1: STL Containers --- \n";
// ________________________________________________ LIST ________________________________________________
                std::cout   << "\n\n\t\t    --- TEST OF CONTAINER --- " 
                            << "\n\t\t\t --- *LIST* --- \n " ;
 
        std::cout   << "\n Let's cast basic functionality of <list>" 
                    << "\n Container like how to include, exclude elements and ect "
                    << "\n First at all let's create data array that is filled doubles \n" ;
 
        const unsigned int size_of_data_array = 20; 
 
        double data_doubles[size_of_data_array] 
                    =   {1830 , 190.1, 191.4 , 1863 , 1839 , 
                         1413 , 1914 , 18.65 , 1656 , 18.95,
                         1903 , 172.2, 1.656 , 1088 , 1789 , 
                        19.47 , 1211 , 196.9 , 1895 , 1628   } ; 
 
 
        std::cout   << "\n Now using push_back function fill"
                    << "\n Instance of list with elements from our the double array \n\n" ;
                
 
        std::list<double> TestListContainsDoubles ;     // List iterator
        for (int i = 0; i < 10; i++)
            {
                TestListContainsDoubles.push_back(data_doubles[i]);
            }
 
        std::cout   << "\n Using function printlist (that we create before) we can print the list \n";
 
        printlist(TestListContainsDoubles);
 
 
    
        std::cout   <<  "\n Using function front() we can return first element of the list." 
                    <<  "\n The first element of TestListContainsDoubles is :  " 
                    <<  TestListContainsDoubles.front() 
                    <<  "\n Using function back() we can return LAST element of list."
                    <<  "\n The LAST element of list1 is :  " 
                    <<  TestListContainsDoubles.back() ;
                
// ________________________________________________ VECTOR ________________________________________________
    
                    std::cout   << "\n\n\n\t\t     --- TEST OF CONTAINER --- " 
                                << "\n\t\t\t --- *VECTOR* --- \n " ;
 
        std::cout   << "\n Let's cast basic functionality of <vertor> container " 
                    << "\n container like how to include, exclude elements and ect"
                    << "\n We will be use data array that we created before \n" ;
 
        std::cout   << "\n Now using push_back function fill"
                    << "\n Instance of <vector> with elements from our the double array \n\n" ;
 
        
 
        std::vector<double> VectorDoubles;
        for (int i = 0; i < size_of_data_array/2; i++)
            {
                VectorDoubles.push_back(data_doubles[i]);
            }   
        
            
        std::cout   << "\nNow let's  print our <vector> container  \n";
        
            for (int i = 0; i < VectorDoubles.size(); ++i)
                {
                    std::cout << "index ["<< i << "] element " << VectorDoubles[i] ;
                    if (i % 2 <= 0 )
                        std::cout << "\t"; 
                    else 
                        std::cout << "\n"; 
                
                }
                
            
 
        std::cout   << "\n Unlike <list> container "
                    << "\n Using <vector>  we can get access to any element "
                    << "\n of vector with which we work    " 
                    << "\n Just use operator [] (square braket)  \n\n";
                
                    unsigned int random_index  =  0; 
    
        unsigned int i = 0; 
        while (  i != VectorDoubles.size()-1)
            {
                    random_index = std::rand()%10; 
                    std::cout   << "index ["<< random_index << "] element " 
                                << VectorDoubles[random_index];
 
                    if (i % 2 <= 0 )    std::cout << "\t"; 
                    else                std::cout << "\n";  
                i++;
            }
 
// ________________________________________________ MAP ________________________________________________
    
                        std::cout   << "\n\n\n\t\t     --- TEST OF CONTAINER --- " 
                                    << "\n\t\t\t --- *MAP* --- " ;
 
        std::map<double, std::string> MapDoubleString;
        
 
        MapDoubleString[data_doubles[1]] = "one";
        MapDoubleString[data_doubles[2]] = "two";
        MapDoubleString[data_doubles[3]] = "three";
 
        for (auto i = MapDoubleString.cbegin(); i != MapDoubleString.cend(); ++i)
            {
                std::cout   <<"\n [" << i -> first <<"] - > <" << i -> second <<">" ;
            }
 
        std::cout   << "\n Unlike <list> or <vector> containers"
                    << "\n Using <map>  we can get access to any element or information"
                    << "\n Using key of a element"
                    << "\n Just use operator [] (square braket)"
                    << "\n For example let's get information that associate with key"
                    << "\n [data_doubles[1]] ( in other words  19.01 ) associate with - >  "
                    << MapDoubleString[data_doubles[1]] ; 
 
        std::cout   << "\n\n\n\t\t"; 
        return 0;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru