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

Что такое контейнерная библиотека объектов? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ записать выражение, зависящее от координат точки X1 и Y1 и принимающее значение TRUE, если точка принадлежит заштрихованной области, и FALSE, если не http://www.cyberforum.ru/cpp-beginners/thread838799.html
помогите пожалуйста
C++ Подпрограмма, которая вычисляет натуральный степень числа Задание: Написать подпрограмму, которая вычисляет натуральный степень числа. Код С++: #include<iostream> using namespace std; double power(double x,int n) {double r=1; while(n){if(n&1)r=r*x,n--; x=x*x; n>>=1;} return r;} int main(){ double x; int n; cout<<"Vvedite chislo i stepen\n"; cin>>x>>n; cout<< power(x,n)<< endl; system("pause");} http://www.cyberforum.ru/cpp-beginners/thread838782.html
Перегруженные функции C++
Всем доброго дня! Помогите с программой: Написать перегруженную функцию суммирования для получения суммы кодов символов от 'a’ до 'z’. В качестве параметров использовать значения начального символа и конечного символа. Вот пример программы: Пример программы, но я не пойму,как она работает: #include<stdio.h> #include<iostream.h> void print(int i){ printf("%d",i);} void print(char...
C++ Заполнить матрицу ЛП, от левого верхнего угла по спирали: вниз-направо-вверх-налево
Заполнить матрицу ЛП, от левого верхнего угла по спирали: вниз-направо-вверх-налево. квадратная матрица. делал по примеру этого поста вот не знаю, ну приколы есть, не с начала начинает, заменяет некоторые числа.. даже скрин сделаю. #include <iostream> #include <iomanip> #include<conio.h> using namespace std; int main()
C++ Строки. Напечатать в алфавитном порядке все глухие согласные буквы http://www.cyberforum.ru/cpp-beginners/thread838768.html
Всем привет, есть задача и код к ней на Паскале, кто может переведите данный код в код языка С++, спасибо. Дана непустая последовательность слов из строчных русских букв; между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все глухие согласные буквы, которые не входят хотя бы в одно слово. Примечание: глухие согласные – к, п, с, т, ф, х,...
C++ Даны натуральное k , символьный файл f и текстовый файл f1 . Файл f содержит 30 слов , каждое из которых будем называть ключевым Добрый день, помогите пожалуйста сделать вот такую программу. Даны натуральное k , символьный файл f и текстовый файл f1 . Файл f содержит 30 слов , каждое из которых будем называть ключевым. Сформировать файл g , который содержит строки файла f1 , циклически сдвинутые так, чтобы каждое ключевое слово, входящее в строку, начиналось с k-й позиции. Строки, содержащие ключевых слов, в файл g не... подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
16.04.2013, 11:09     Что такое контейнерная библиотека объектов?
Ну какой STL, когда в задании ясно написано:
Цитата Сообщение от art3330 Посмотреть сообщение
Создать класс, отражающий структуру данных
Цитата Сообщение от art3330 Посмотреть сообщение
Реализовать класс List для управления динамическим списков
Смысл задания в том, чтобы создать два класса -- класс описывающий некую структуру данных (видимо у вас дата) и класс, управляющий динамическим списком, у вас, очевидно, двусвязный.

Кликните здесь для просмотра всего текста
Класс Date, наивная реализация. Шаблонный двусвязный список на итераторах. Не хватает некоторых функций -- собрано на коленке.
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#include <iostream>
 
class Date {
 public:
  Date() : day(1), month(1), year(1971) {}
  Date(unsigned int day, unsigned int month, unsigned int year)
    : day(day), month(month), year(year) {}
  unsigned int getDay() const { return day; }
  unsigned int getMonth() const { return month; }
  unsigned int getYear() const { return year; }
  void setDay(unsigned int value) { day = value; }
  void setMonth(unsigned int value) { day = value; }
  void setYear(unsigned int value) { day = value; }
  static const std::string MONTH_NAMES[12];
 private:
  unsigned int day, month, year;
};
 
const std::string Date::MONTH_NAMES[12] = {"JAN", "FEB", "MAR", "APR",
  "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"};
 
std::ostream &operator<<(std::ostream &stream, const Date date) {
  return stream << ((date.getDay() < 10) ? "0" : "") << date.getDay() <<
    "." << ((date.getMonth() < 10) ? "0" : "") << date.getMonth() <<
    "." << date.getYear();
}
 
struct ListNodeBase {
  ListNodeBase *prev, *next;
  ListNodeBase() : prev(this), next(this) {}
  ListNodeBase(ListNodeBase *prev, ListNodeBase *next) : prev(prev), next(next) {
    next->prev = prev->next = this;
  }
  virtual ~ListNodeBase() {
    next->prev = prev;
    prev->next = next;
  }
};
 
template <class T>
struct ListNode : public ListNodeBase {
  T value;
  ListNode(ListNodeBase *prev, ListNodeBase *next, const T &value)
    : ListNodeBase(prev, next), value(value) {}
};
 
struct ListIteratorBase {
  ListIteratorBase() : node(0) {}
  ListIteratorBase(ListNodeBase *node) : node(node) {}
  
  void increment() { node = node->next; }
  void decrement() { node = node->prev; }
  
  bool operator==(const ListIteratorBase &other) const {
    return node == other.node;
  }
  bool operator!=(const ListIteratorBase &other) const {
    return node != other.node;
  }
  ListNodeBase *node;
};
 
template <class ValueType, class PointerType, class ReferenceType>
struct ListIterator : public ListIteratorBase {
  typedef ValueType           Value;
  typedef PointerType         Pointer;
  typedef ReferenceType       Reference;
  typedef ListNode<ValueType> Node;
  typedef ListIterator<ValueType, PointerType, ReferenceType> Self;
  typedef ListIterator<ValueType, ValueType*, ValueType&> Iterator;
  typedef ListIterator<ValueType, const ValueType*,
    const ValueType&> ConstIterator;
  
  ListIterator() : ListIteratorBase() {}
  ListIterator(const Iterator &other) : ListIteratorBase(other.node) {}
  ListIterator(ListNodeBase *node) : ListIteratorBase(node) {}
  
  Reference operator*() const { return ((Node*)node)->value; }
  Pointer operator->() const { return &(operator*()); }
 
  Self &operator++() {
    increment();
    return *this;
  }
  Self &operator--() {
    decrement();
    return *this;
  }
  Self &operator++(int) {
    Self result = *this;
    increment();
    return result;
  }
  Self &operator--(int) {
    Self result = *this;
    decrement();
    return result;
  }
  
};
 
template <class T>
class List {
 public:
  typedef T Value;
  typedef T* Pointer;
  typedef T& Reference;
  typedef ListIterator<T, T*, T&> Iterator;
  typedef ListIterator<T, const T*, const T&> ConstIterator;
  
  List() : size(0), base() {}
  List(const List &other) : size(0), base() {
    insert(other.begin(), other.end());
  }
  List &operator=(const List &other) {
    if (this != &other) {
      clear();
      insert(other.begin(), other.end());
    }
    return *this;
  }
  virtual ~List() {
    clear();
  }
  
  Iterator begin() { return (Node*)(base.next); }
  ConstIterator begin() const { return (Node*)(base.next); }
  Iterator end() { return (Node*)(&base); }
  ConstIterator end() const { return (Node*)(&base); }
  
  Iterator insert(Iterator position, const T &value) {
    ++size;
    return new Node(position.node->prev, position.node, value);
  }
  void insert(Iterator position, Iterator first, Iterator last) {
    while (first != last) {
      position = insert(position, *first++);
      ++position;
    }
  }
  Iterator erase(Iterator position) {
    Iterator next = position.node->next;
    delete position.node;
    -- size;
    return next;
  }
  Iterator erase(Iterator first, Iterator last) {
    while (first != last) {
      first = erase(first);
    }
    return first;
  }
  Iterator pushBack(const T &value) {
    return insert(end(), value);
  }
  Iterator pushFront(const T &value) {
    return insert(begin(), value);
  }
  bool isEmpty() const { return base.next == &base; }
  void clear() {
    while (!isEmpty()) {
      delete base.next;
    }
    size = 0;
  }
 private:
  typedef ListNode<T> Node;
  size_t size;
  ListNodeBase base;
};
 
int main(int argc, char *argv[]) {
  List<Date> list;
 
  list.pushBack(Date(10, 12, 2014));
  list.pushBack(Date(4, 7, 2013));
  list.pushBack(Date(1, 7, 2012));
 
  for (List<Date>::ConstIterator i = list.begin(); i != list.end(); ++i) {
    std::cout << *i << std::endl;
  }
  
  std::cin.get();
  return 0;
}
 
Текущее время: 20:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru