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

STL - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Течёт память рекой http://www.cyberforum.ru/cpp-beginners/thread552134.html
Не могу понять в чём проблема. Есть класс CControl, от него есть наследники CInput и CButton. Просто создание объектов типа CButton и CInput не возникает утечек памяти, использование функции Clone для получения копии объекта (и последующее освобождение памяти через delete) тоже проблем не возникает, а вот когда возникает необходимость хранить объекты наследники CControl в классе CWindow в списке...
C++ Системы счисления Задано положительное действительное число up в системе счисления с основанием p с фиксированной точкой, и основание q (p, q ≠ 2, 8, 10, 16). Требуется: 1. Перевести число up в систему счисления с основанием q (при проверке работы программы числа up и q задаются преподавателем). 2. Перевести число up в 32-разрядный двоичный код, после чего это число с по-мощью разбиения на тетрады (т.е. на... http://www.cyberforum.ru/cpp-beginners/thread552125.html
Списки: функции для работы со списками C++
Помогите пожааааааалуйста с задачками!!!! ;) ОПИШИТЕ ФУНКЦИИ ТИПОВЫХ ОПЕРАЦИЙ С СПИСКАМИ: 1. Функция AddHead (int d) добавление узла в голову списка; 2. Функция AddEnd (int d) добавление узла в конец списка; 3. Функция ShowList() вывод списка на экран; 4. Функция Search (int d) поиск узла с заданным значением в некотором поле данных; 5. Функция FindNode (int n) поиск узла с заданным...
C++ Итерационные циклы
Написать программу вычисления значения функции, заданной в виде ряда, с погрешностью епсилон> 0,0001 п(пи)=3+4*(1/2*3*4 - 1/4*5*6 + 1/6*7*8 -....) Напишите пожалуйста, нужно для будущего авиации)))
C++ Найти корень уравнения методом простой итерации http://www.cyberforum.ru/cpp-beginners/thread552109.html
Дано уравнение acos(x)-x2, корень нужно найти на интервале . Я уже пробовал много разных вариантов, но остановился на таком(он хоть что-то выдает). Правда результат не очень утешительный: Enter the beginning of segment -> -1 Enter the ending of segment -> 1 2.14159 -1.#INF -1.#IND -1.#IND Result = -1.#IND
C++ Вычислить определённый интеграл методом тропеций помогите пожалуйста ни как не пойму как реализовать вычисление интеграла подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
19.04.2012, 15:24     STL
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
#include <iostream>
#include <list>
#include <iterator>
#include <algorithm>
 
namespace simple
{
 
template<class T>
class list
{
private:
   template<class Container>
   class circle_iterator
   {
   public:
      circle_iterator(Container& cont, typename Container::iterator iter):
         cont_(cont), current(iter)
      {
      }
      circle_iterator& operator ++()
      {
         ++current;
         if (current == cont_.end())
         {
            current = cont_.begin();
         }
         return *this;
      }
      circle_iterator operator ++(int)
      {
         circle_iterator tmp(*this);
         this->operator ++();
         return tmp;
      }
      circle_iterator operator --()
      {
         if (current == cont_.begin())
         {
            std::advance(current, cont_.size() - 1);
         }
         else
         {
            --current;
         }
         return *this;
      }
      circle_iterator operator --(int)
      {
         circle_iterator tmp(*this);
         this->operator --();
         return tmp;
      }
      typename Container::value_type& operator *()
      {
         return *current;
      }
      typename Container::pointer operator ->()
      {
         return &(*current);
      }
   private:
      Container& cont_;
      typename Container::iterator current;
   };
public:
   typedef circle_iterator<std::list<T> > iterator;
   typedef iterator const_iterator;
 
   list():container()
   {
   }
   list(const std::initializer_list<T>& args):container(args)
   {
   }
   void insert(const T& value)
   {
      if (!container.empty())
      {
         auto up_bound = std::upper_bound(container.begin(), container.end(), value);
         if (up_bound != container.end())
         {
            container.insert(up_bound, value);
         }
         else
         {
            container.push_back(value);
         }
      }
      else
      {
         container.push_back(value);
      }
   }
   void erase(const T& value)
   {
      auto iter = std::find(container.begin(), container.end(), value);
      if (iter != container.end())
      {
         container.erase(iter);
      }
   }
   iterator begin() { return iterator(container, container.begin()); }
   //iterator end() { return iterator(container, container.end()); }
   //const_iterator begin() const { return container.cbegin(); }
   //const_iterator end() const { return begin(); }
private:
   template<class T2>
   friend std::ostream& operator << (std::ostream&, const list<T2>&);
   std::list<T> container;
};
 
template<class T>
std::ostream& operator << (std::ostream& os, const list<T>& lst)
{
   std::copy(lst.container.begin(), lst.container.end(), std::ostream_iterator<T>(os, "\n"));
   return os;
}
 
}
 
int main()
{
   simple::list<int> lst;
   lst.insert(10);
   lst.insert(9);
   lst.insert(8);
   lst.insert(20);
   lst.insert(5);
   std::cout << lst;
   lst.erase(8);
   lst.erase(5);
   std::cout << "after erase" << std::endl;
   std::cout << lst;
   int cnt = 10;
   int current = 0;
   std::cout << "List" << std::endl;
   for (simple::list<int>::iterator iter = lst.begin(); current != cnt; ++current, ++iter)
   {
      std::cout << *iter << std::endl;
   }
}
http://liveworkspace.org/code/9c91d4...e505f20410b10a

Остальное сам.
 
Текущее время: 12:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru