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

Программная реализация класса обработки одномерного массива с использованием шаблона - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что означает такая запись на C++: "n=1L"? http://www.cyberforum.ru/cpp-beginners/thread1791047.html
Здравствуйте ) я новичок на сайте да и в c++(только начал изучать).Не совсем понимаю что означает такая запись : unsigned int a; a=10U; А точнее говоря я не понимаю зачем писать в строке,где присваиваем переменной значение 10 , букву U. Или же такой пример: int n; n=1L;
C++ Почему не работает код? подскажите пожалуйста почему мой код не работает. от меня требуется отсортировать целые числа и напечатать с начало четные, потом нечетные . #include <iostream> #include <vector> #include <algorithm> int main() { int n; std::cin >> n; http://www.cyberforum.ru/cpp-beginners/thread1791038.html
C++ В первую строку вывести силы игроков первой команды, во вторую - второй
N игроков хотят разбиться на две команды. Причем хотят разделиться так - самый сильный игрок - в первой команде, следующий самый сильный - во второй, третий - в первой. И так далее. Задано число N и N целых чисел обозначающих силы игроков. В первую строку вывести силы игроков первой команды, во вторую - второй. Можно использовать только библиотеки iostream, string, vector, algorithm: ...
C++ Напечатать отдельно чётные и нечётные числа массива в отсортированном виде
задачка такая, надо отсортировать цифры, и напечатать отдельно четные и нечетные цыфри я отсортировал, а дальше как надо ??? прощу помочь с кодом #include <iostream> #include <vector> #include <algorithm> int main() {
C++ Как реализовать сравнение строк? http://www.cyberforum.ru/cpp-beginners/thread1790973.html
Здравствуйте, проблема в том, что я не знаю как сравнить строки в своей программе. Сейчас она выглядит вот так: #include <iostream> #include <ctime> #include <string> using namespace std; int main() { string s, m, sTime, sCheckTime, sActTime; struct tm *ptr; time_t It;
C++ Ошибка при чтении целочисленных данных из файла Ребят, выручайте. Нужно прочитать однострочный файл. Из него надо вычленить числа и произвести какую-нибудь арифметическую операцию(например сложение). Так вот если в строке только числа - все нормально, но если есть слова между ними как сейчас, при запуске вылетает ошибка. #include <iostream> #include <vector> //#include <string> #include <fstream> using namespace std; int main() {... подробнее

Показать сообщение отдельно
Mariya_1994
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 2

Программная реализация класса обработки одномерного массива с использованием шаблона - C++

07.08.2016, 23:26. Просмотров 265. Ответов 5
Метки (Все метки)

Описать класс Array обработки одномерных массивов произвольного размера и типа. Использовать шаблон для типа <template>. Память выделяется динамически. К основным функциям (добавление и удаление элементов массива, поиск по ключу, вывод массива на экран по n строк) добавьте функции чтения данных из файла, функции сортировки массива различными способами: методом включения , методом Шелла, быстрой сортировкой Хоара. Сделать сравнительный анализ эффективности данных методов, т.е. для каждого метода и для каждого случая определить количество сравнений и обменов.
Предусмотреть 3 случая исходного массива:
а) случайный массив, б) «лучший случай» (отсортированный массив), в) «худший случай» (массив отсортирован в обратном порядке).
Организовать работу в меню. Выполнить раздельную компиляцию и работу в проекте.

Сделала примерно половину работы и застряла... Не совсем понимаю работу с классами и указателями и из-за этого не могу сделать функции для пунктов меню. Помогите, пожалуйста, скоро нужно сдать(
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 "array.h"
namespace cf{
    
    template<class T>
    class Array{
        private:
            T * arr;
            size_t maxSize;
            size_t idx;
        public:
            Array(){
                maxSize = 10;
                idx = 0;
                arr = new T[maxSize];
            }
            Array(const char * fileName){
                // реализовать чтение данных с файла
            }
            Array(size_t maxSize){
                this->maxSize = maxSize;
                idx = 0;
                arr = new T[this->maxSize];
            }
            Array(const Array<T> & array){
                maxSize = array.maxSize;
                idx = array.idx;
                arr = new T[maxSize];
                for(size_t i = 0; i < maxSize; ++i){
                    arr[i] = array.arr[i];
                }
            }
            T * getData() const{
                    return arr;
                }
            void push_back(T var){
                if(idx + 1 <= maxSize - 1){
                    arr[idx] = var;
                    ++idx;
                }
                else{
                    Array<T> a(*this);
                    maxSize *= 2;
                        delete [] arr;
                        arr = new T[maxSize];
                        for(size_t i = 0; i < a.getSize(); ++i){
                            arr[i] = a[i];
                        } 
                        arr[idx] = var;
                        ++idx;
                }
            }
            
            void sort(){
                
            }
            
            void remove(size_t index){
                // нужно сделать удаление
            }
            size_t find(T var, size_t index = 0) const{
                size_t dstIndex = -1;
                if(index >= idx)
                    return dstIndex;
                
                    for(size_t i = idx; i < idx; ++i){
                        if(var == arr[i]){
                            dstIndex = i;
                            break;
                        }
                    }
                    return dstIndex;
                }
            
            size_t getSize() const{
                    return idx;
                }
                T & operator[](size_t index){
                    return arr[index];
                }
                void printScreen(size_t count){
                    for(size_t i = 0; i < idx; ++i){
                        if(!(i % count)){
                            std::cout << std::endl;
                            std::cout << arr[i] << " ";
                        }
                        else{
                            std::cout << arr[i] << " ";
                        }
                    }
                }
            ~Array(){
                delete [] arr;
            }
    };
}
 
int main(){
    
  char ch;
  bool exit = false;
  
  while(std::cin >> ch && exit){
    switch(ch){
        case '1' : 
            std::cout << "1. Create random array" << std::endl;
            // 1 пункт меню
                break;
        case '2' : 
                std::cout << "2. Create sorted array" << std::endl;
                // 2 пункт меню
                break;
        case '3' : 
                std::cout << "3. Create array is sorted in reverse order" << std::endl;
                //3 пункт меню
                break;
        case '4' : 
                std::cout << "4. Sorted array by switching technique" << std::endl;
                // 4 пункт меню
                break;
        case '5' : 
                std::cout << "5. Sorted array by Shell`s" << std::endl;
                // 5 пункт меню
                break;
        case '6' : 
                std::cout << "6. Sorted array by fast sorting" << std::endl;
                // 6 пункт меню
                break;
        case '7' : 
                std::cout << "7. Print array" << std::endl;
                // 7 пункт меню
                break;
            case '8' : 
                std::cout << "8. Exit" << std::endl;
                exit = !exit;
                break;
        default: std::cout << "unknow operation" << std::endl;
    }
  }
  
  return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru