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

Реализовать шаблонный класс - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ stdlib.h - quicksort http://www.cyberforum.ru/cpp-beginners/thread629057.html
Идея такова: отсортировать массив A очень быстрым методом Хоара. Пробовал в stdlib.h делать QuickSort - ничего не получилось. Все значения элементов - до 263-1. Т.е. влазят в тип long. Помогите отсортировать!
C++ KeyDown обрабатывает только символы Всем привет. Собственно сам вопрос, когда я вызываю функцию (пишу на WinApI, но вопрос из основ c++) Она реагирует только на буквы, цифры, а мне нужно ещё VK_LEFT, VK_RIGHT. Но почему то эта функция их не обрабатывает, вопрос почему. void CMovingBallDlg::KeyD(HWND hwnd, UINT vk, BOOL fDown, int cRepeat, UINT flags) { switch (wP) { case (VK_LEFT)://сообщение не обрабатывается {... http://www.cyberforum.ru/cpp-beginners/thread629012.html
C++ Написать dll для дальнейшего использования в программах на других языках
как правильно написать dll чтоб ей можно было пользоваться программам на других языках, например, на delphi
C++ Ошибка в Dev-C++
Скачал книгу "Как программировать на С++" Харви и Пола Дейтелов. Дочитал до первой программы и попробовал её переписать в Dev-C++ //first programm c++ #include <iostream.h> main () { cout <<"Добро пожаловать в C++!\n"; return 0; } Выдаёт ошибку: 32:2 C:\Dev-Cpp\include\c++\3.4.2\backward\backward_warning.h #warning This file includes at least one deprecated or antiquated...
C++ Подключить dll http://www.cyberforum.ru/cpp-beginners/thread628997.html
Здравствуйте. Есть dll, в ней несколько функций, необходимо добавить еще одну, чтобы выводила окно с приветствием. И затем написать win - проект, который будет использовать эту функцию. В нете нашел информацию, как подключать dll при наличии lib, а если его не будет (lib-а), как тогда подключать и использовать функции? Спасибо.
C++ Компоновка всей программы в один файл Можно ли сделать так, чтоб при построение программы она, включая все внешние картинки, звуковые файлы, редистрюбитивы VC и пр компоновались в один файл? Тоесть, чтоб я мог на любом компьютере запустить программу, предварительно не устанавливая там библиотеки RunTime VC 2010 и пр...И чтоб все ресурсы тоже компоновались в один файл, находясь в проекте не в файле ресурсов подробнее

Показать сообщение отдельно
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
26.07.2012, 19:12     Реализовать шаблонный класс
можете посмотреть в реализацию boost::array (в файле array.hpp). это как раз то, что вы пытаетесь сделать. я поудалял кое чего чтобы было проще понять что к чему. возможно это даже не компилится, но общий ход мысли должен быть понятен. за полной реализацией лучше в буст и залезть. код достаточно простой.

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
namespace boost
{
 
  template<class T, std::size_t N>
  class array
  {
  public:
    T elems[N];    // fixed-size array of elements of type T
 
 
  public:
    // type definitions
    typedef T              value_type;
    typedef T*             iterator;
    typedef const T*       const_iterator;
    typedef T&             reference;
    typedef const T&       const_reference;
    typedef std::size_t    size_type;
    typedef std::ptrdiff_t difference_type;
 
 
    // iterator support
    iterator begin()
    {
      return elems;
    }
 
    const_iterator begin() const
    {
      return elems;
    }
 
    iterator end()
    {
      return elems+N;
    }
 
    const_iterator end() const
    {
      return elems+N;
    }
 
 
    // operator[]
    reference operator[](size_type i) 
    { 
      return elems[i];
    }
        
    const_reference operator[](size_type i) const 
    {     
      return elems[i]; 
    }
 
    // at() with range check
    reference at(size_type i)
    {
      rangecheck(i); return elems[i];
    }
 
    const_reference at(size_type i) const
    {
      rangecheck(i);
      return elems[i];
    }
    
    // front() and back()
    reference front() 
    { 
      return elems[0]; 
    }
        
    const_reference front() const 
    {
      return elems[0];
    }
        
    reference back() 
    { 
      return elems[N-1]; 
    }
        
    const_reference back() const 
    { 
      return elems[N-1]; 
    }
 
    // size is constant
    static size_type size()
    {
      return N;
    }
 
    static bool empty()
    {
      return false;
    }
 
    static size_type max_size()
    {
      return N;
    }
 
    enum
    {
      static_size = N
    };
 
    // swap (note: linear complexity)
    //void swap (array<T,N>& y)
    //{
    //  for (size_type i = 0; i < N; ++i)
    //    boost::swap(elems[i],y.elems[i]);
    //}
 
    // direct access to data (read-only)
    const T* data() const
    {
      return elems;
    }
 
    T* data()
    {
      return elems;
    }
 
    // use array as C array (direct read/write access to data)
    T* c_array()
    {
      return elems;
    }
 
 
    // assignment with type conversion
    template <typename T2>
    array<T,N>& operator= (const array<T2,N>& rhs)
    {
      std::copy(rhs.begin(),rhs.end(), begin());
      return *this;
    }
 
    // assign one value to all elements
    void assign (const T& value)
    {
      fill ( value ); // A synonym for fill
    }
 
    void fill (const T& value)
    {
      std::fill_n(begin(),size(),value);
    }
 
    // check range (may be private because it is static)
    static void rangecheck (size_type i)
    {
      if (i >= size())
      {
        //std::out_of_range e("array<>: index out of range");
        //boost::throw_exception(e);
      }
    }
  };
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru