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

Реализация примитивного STL совместимого контейнера - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Исправление ошибок http://www.cyberforum.ru/cpp-beginners/thread1048591.html
Пожалуйста помогите исправить ошибки!!! #include <iostream h> #include <stdlib h> int main() { int n = 10; int a = ; int b = ;
C++ поиск среди чисел такого, которое при возведении в куб и сложении со всеми делителями является квадратом какого-нибудь числа Необходимо написать функцию, которая в качестве аргументов принимает промежуток целых чисел, и осуществляет поиск среди этих чисел такого, которое при возведении в куб и сложении со всеми делителями(кроме самого себя в результате является квадратом какого-нибудь числа). (пример: (2^3)+1=9) Вот что у меня получилось, помогите найти ошибку #include <iostream> using namespace std; int zan(int... http://www.cyberforum.ru/cpp-beginners/thread1048582.html
C++ Как удалить 2 строчку из 3-ех мерной матрицы
Как удалить 2 строчку из 3-ех мерной матрицы Вот код заполнения массива и вывод #include <stdio.h> #define size_i 3 #define size_j 3 void main() { int a; int k=2,i,j; printf("\nVvedite elemnt massiva\n");
C++ Поиск элемента в односвязном списке
задачу решил, всем спасибо. кому интересен результат, или то как решит задачу - в личку
C++ Создать класс МНОГОЧЛЕН http://www.cyberforum.ru/cpp-beginners/thread1048550.html
Создать класс МНОГОЧЛЕН степени n от одной переменной x, задаваемый массивом своих коэффициентов (массив должен храниться в динамической памяти и задаваться внутри конструктора, используя датчик случайных чисел). Класс должен включать конструктор, которому в качестве параметра передается степень многочлена; деструктор; конструктор копирования, метод, который печатает уравнение на экран. Для...
C++ Одномерные массивы (перестановка) Переставить местами четные и нечетные элементы массива. Вводимого с клавиатуры (но можно и рандомно). Код: #include <cstdlib> #include <iostream> #include <cmath> using namespace std; int main() { подробнее

Показать сообщение отдельно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
20.12.2013, 01:12     Реализация примитивного STL совместимого контейнера
не работает - это не компилится или в рантайме ошибки?
для студии добавил operator <,
для вот этого: http://www.compileonline.com/compile_cpp_online.php
добавил #include <cstddef> и nullptr заменил на 0 (хз как там в новый стандарт переключиться).
в результате компилится и печатает пятерки:

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
#include <iostream>
#include <iterator>
#include <algorithm>
#include <cstddef>
 
template<typename T>
struct Iter : public std::iterator<std::random_access_iterator_tag, T>
{
private:
   T* p;
public:
   typedef T value_type;
   typedef T* pointer;
   typedef T& reference;
   typedef std::random_access_iterator_tag iterator_category;
   typedef ptrdiff_t difference_type;
 
 
   Iter() : p(0) {}
   Iter(pointer p_) : p(p_) {}
   Iter(const Iter& other) :p(other.p) {}
   Iter& operator =(const Iter& other)
   {
      if (this != &other)
         p = other.p;
      return *this;
   }
 
   Iter& operator ++()
   {
      ++p;
      return *this;
   }
 
   Iter  operator ++(int)
   {
      Iter tmp(*this);
      operator ++();
      return tmp;
   }
 
   reference operator *() { return *p; }
   pointer operator ->() { return p; }
 
   bool operator ==(const Iter& other) const { return p == other.p; }
   bool operator !=(const Iter& other) const { return !(*this == other); }
 
   difference_type operator -(const Iter& value) const {
      return p - value.p;
   }
 
   bool operator < (const Iter& other) const { return false; }
};
 
template<typename T>
class array
{
   T* data;
   size_t size;
public:
   typedef  T                                      value_type;
   typedef  std::size_t                            size_type;
   typedef  std::ptrdiff_t                         difference_type;
   typedef  value_type&                            reference;
   typedef  const value_type&                      const_reference;
   typedef  value_type*                            pointer;
   typedef  const value_type*                      const_pointer;
 
   typedef  Iter<T>                                iterator;
   typedef  const Iter<T>                          const_iterator;
   typedef  std::reverse_iterator<iterator>        reverse_iterator;
   typedef  std::reverse_iterator<const_iterator>  const_reverse_iterator;
 
   explicit array(size_t size_, T value_ = T()) : data(new T[size_]), size(size_)
   {
      for (size_t i = 0; i < size; ++i) { data[i] = value_; }
   }
 
   ~array() { delete[] data; }
 
   iterator begin() {return iterator(data);}
   iterator end() {return iterator(data+size);}
};
 
int main()
{
   array<int> ar(10, 5);
 
   std::copy(ar.begin(), ar.end(), std::ostream_iterator<int>(std::cout, " "));
   return 0;
}
 
Текущее время: 02:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru