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

Реализовать шаблон Array - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана целостная матрица http://www.cyberforum.ru/cpp-beginners/thread221630.html
Дана целостная матрица i,j=1,...,n. Получить b1,...,bn, где bi - это n Σ a^2ij j=1
C++ Описать класс n-мерных векторов Класс n-мерных векторов Базовый класс (координаты начала и конца вектора Совет: реализовать дополнительный класс NPoint, содержащий в виде массива координаты n-мерных точек, а также количество координат - N) Конструкторы: по умолчанию, с параметрами и копирования. Деструктор. Функции: перегрузки операции сложения; Перегрузка операции вычитания; перегрузки операции умножения на... http://www.cyberforum.ru/cpp-beginners/thread221626.html
C++ Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя.
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между функциями с помощью глобального описания данных; второй вариант – с помощью формальных и фактических аргументов (массиву соответствует массив), данные описываются в функции, вызывающей все остальные; третий вариант - с помощью формальных и фактических аргументов (указателю на двумерный массив...
C++ структра C++
Информация об участниках спортивных соревнований содержит наиме- нование страны, название команды, ФИО игрока, игровой номер, возраст, рост и вес. Вывести информацию о самой молодой команде. Вообщем, ввожу информацию. Не получается найти средний возраст, две строчки кода : cin>>msport.vozr; msport.sv+=msport.sv/ks;
C++ Две программы с мышью http://www.cyberforum.ru/cpp-beginners/thread221596.html
1) Сформировать на экране изображение, показанное на рис. Щелчок мыши на указателе цвета символов приводит к выводу в прямоугольное окно произвольного текста символами, цвет которых соответствует указанному. http://savepic.org/1100070.htm 2) Составить программу, которая выводит на экран приведенный рисунок. Кнопка "Выход" прекращает работу программы. Щелчок левой клавиши мыши в соответствующей...
C++ Подкиньте код нарисованных фигур в с++ Подкиньте код для рисования фигур. Хочу попробовать что-то нарисовать подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
13.06.2012, 13:55     Реализовать шаблон Array
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
#include <iostream>
#include <type_traits>
#include <algorithm>
#include <stdexcept>
#include <cstddef>
 
template<typename T, int N>
class array
{
public:
   typedef T value_type;
   typedef size_t size_type;
   typedef typename std::add_lvalue_reference<T>::type reference;
   typedef const reference const_reference;
   typedef typename std::add_pointer<T>::type pointer;
   typedef const pointer const_pointer;
   typedef pointer iterator;
   typedef const_pointer const_iterator;
   typedef typename std::reverse_iterator<iterator> reverse_iterator;
   typedef typename std::reverse_iterator<const_iterator> const_reverse_iterator;
   typedef ptrdiff_t difference_type;
 
   constexpr size_type size() const { return N; }
   constexpr size_type max_size() const { return size(); }
   constexpr bool empty() const { return !N; }
   reference operator [](size_type idx) { return array_[idx]; }
   const_reference operator [](size_type idx) const { return array_[idx]; }
   reference at(size_type idx)
   {
      check_size(idx);
      return array_[idx];
   }
   const_reference at(size_type idx) const
   {
      check_size(idx);
      return array_[idx];
   }
   reference front()
   {
      return *begin();
   }
   const_reference front() const
   {
      return *begin();
   }
   reference back()
   {
      return N ? *(end() - 1) : *end();
   }
   const_reference back() const
   {
      return N ? (*end() - 1) : *end();
   }
   pointer data() { return array_; }
   const_pointer data() const { return array_; }
   iterator begin() { return iterator(array_); }
   const_iterator begin() const { return const_iterator(array_); }
   iterator end() { return iterator(array_ + N); }
   const_iterator end() const { return const_iterator(array_ + N); }
   iterator rbegin() { return reverse_iterator(end()); }
   const_iterator rbegin() const { return const_reverse_iterator(end()); }
   iterator rend() { return reverse_iterator(begin()); }
   const_iterator rend() const { return reverse_iterator(begin()); }
   void fill(const value_type& val)
   {
      std::fill(begin(), end(), val);
   }
   void swap(array& other)
   {
      std::swap_ranges(begin(), end(), other.begin());
   }
 
   T array_[N ? N : 1];
private:
   void check_size(size_type idx) const
   {
      if (idx >= size())
      {
         throw std::out_of_range("out_of_range");
      }
   }
};
 
int main()
{
   array<int, 3> arr = {1,2,3};
   std::for_each(arr.begin(), arr.end(), [](const int val) { std::cout << val << std::endl; });
}
http://liveworkspace.org/code/9074cd...431d716026bfe0
 
Текущее время: 00:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru