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

Задача на использование шаблонов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести количество максимальных чисел. Массив http://www.cyberforum.ru/cpp-beginners/thread969804.html
Сначала вводим кол-во чисел в массиве, затем находим кол-во максимальных чисел данной последовательности. Пример: Sample input: 7 1 4 2 5 2 5 3 Sample output: 2 Вот но не получилось. Если можно переделайте пожалуйста и еще одна просьба можно без функции.
C++ С++ задача (исправить ошибку в коде) Помогите не правильно выводится, исправьте пожалуйста должен так выводиться Sample input 1: 9 3 5 1 7 9 0 9 -3 10 Sample output 1: 9 10 9 #include <iostream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread969800.html
помогите написать функцию слияния списков C++
#include <iostream> #include <conio.h> using namespace std; struct Node { int a; Node *next; Node(int a1){
C++ Начало работы в С++
Какую среду для С++ использовать, чтоб был хороший компилятор? как установить и начать работать? Пожалуиста, сразу ссылки. Windows 7 (64)
C++ Реализовать рекурсию http://www.cyberforum.ru/cpp-beginners/thread969789.html
Доброго времени суток! Никак не пойму как это сделать, хотябы направьте меня, что бы самому додумать Пусть в алгебраической записи выражения имеется одна операция - умножения, обозначаемая обычным способом(два множителя записаны друг за другом).Выражение состоит их строки символов и скобок "()", "","{}". Написать программу(рекурсивную), которая выполняет проверку на соответствие открывающихся и...
C++ Разработать приложение, реализующее следующие функции Разработать приложение, реализующее следующие функции:  Выделяет всю доступную процессу память  Освобождает всю выделенную память  Определяет количество выделенной памяти  Определяет время выделения памяти  Определяет время освобождения памяти Память необходимо выделять функциями HeapAlloc и malloc блоками по 18 кб. Выручайте, ребят... подробнее

Показать сообщение отдельно
EVP
314 / 236 / 41
Регистрация: 14.12.2010
Сообщений: 457
07.10.2013, 02:04     Задача на использование шаблонов
Ок. Разбираем программу от первых до последних, понимая, что последние становятся первыми в выполнении

Шаблон Array2DVector - реализация 2d массива через вектора (std::vector<..>).
Шаблон Array2D - реализация 2d массива через одномерный массив, использует std::unique_ptr<...> с пользовательским делитором (он и требует C++11).
Возможно его можно и выкинуть, если не нужен. Заодно выкинуть и все его упоминания, возможно тогда скомпилируется на старом компиляторе.

У указанных шаблонов есть геттеры и сеттеры для доступа к 2d массиву.

Шаблон RandInput<..> содержит одну статическую процедуру action(T& array), которая принимает 2d массив для заполнения его случайными числами по модулю T::ValueModule, который определён в каждом классе реализации векторов.

Шаблон UserInput<..> также содержит статическую процедуру action(T& array), но которая заполняет переданный массив через пользовательский ввод.

Шаблонная глобальная функция void print(const T& array) печатает переданный 2d массив.

Шаблонная глобальная функция void swapColumns(T& array2d, size_t first, size_t second) выполняет перестановку столбцов с индексами first и second.

Шаблонный класс ActionSwap<..> содержит статическую функцию void action(T& array2d, int /*minDimantionSize*/), которая выполняет перестановку столбцов согласно твоей задачи.

Шаблонная глобальная void run<..>() выполняет создание массива заданного типа, его инициализацию, печать и изменение.

Шаблонный класс SwapRun<..> в статическом методе run() выполняет запуск твоего задания для двух типов двумерных массивов.

Шаблонная defaultRun<..> выполняет выбор пользователя для запуска задания со сгенерированными значениями массивов или с помощью пользовательского ввода всего массива.

Единственная не шаблонная функция main() выполняет запуск defaultRun<4>(), передавая параметр шаблона для реализации двумерного массива 4x4.

Успехов.
 
Текущее время: 13:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru