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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LiLi R.
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
#1

Использование функций шаблонов - C++

21.04.2010, 19:26. Просмотров 729. Ответов 9
Метки нет (Все метки)

Ребят помогите. надо для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода и вывода массива а также шаблон для решения задачи - Заменить вселементы меньшие заданного числа этим числом. Ребят пожалуйста для меня это очень сложная задача. Help!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
833 / 517 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
21.04.2010, 22:45     Использование функций шаблонов #2
у вас есть какие нибудь наработки , хотя бы без шаблонов?
FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
22.04.2010, 00:17     Использование функций шаблонов #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
#include<iostream>
#include<conio.h>
using namespace std;
 
template <typename T>
void out(T *a, int n, int m)
{
    for(int i = 0; i < n; ++i)
    {
        for(int j = 0; j < m; ++j)
            cout << *a++ << " ";
        cout << endl;
    };
}
 
void main() 
{
    int x1[2][3] = {1, 2, 3,
                    4, 5, 6};
 
    out<int>(&x1[0][0], 2, 3);
    _getch();
}
LiLi R.
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
22.04.2010, 04:03  [ТС]     Использование функций шаблонов #4
FireNovel, Как я понимаю это лишь часть кода.?
FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
22.04.2010, 12:33     Использование функций шаблонов #5
Цитата Сообщение от LiLi R. Посмотреть сообщение
разработать шаблоны ввода и вывода массива
Есть отакая штука, может поможет?
Так вот это, как раз, функция шаблон для вывода двухмерного массива NxM на консоль

Шаблон ввода, если я не ошибаюсь, можно организовать подобным образом, но только он будет возвращать указатель на T (typename T)
LiLi R.
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
22.04.2010, 20:51  [ТС]     Использование функций шаблонов #6
FireNovel, т.е. мне осталось состряпать int main()?
inesta
0 / 0 / 0
Регистрация: 30.03.2010
Сообщений: 19
22.04.2010, 21:12     Использование функций шаблонов #7
Цитата Сообщение от LiLi R. Посмотреть сообщение
FireNovel, т.е. мне осталось состряпать int main()?

void main() - уже есть вроде как
LiLi R.
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
18.05.2010, 23:53  [ТС]     Использование функций шаблонов #8
FireNovel, нужно заменить элементы ниже заданного числаэтим числом. Иными словами, мне нужно еще задать число. а так прога просто выдает 1 2 3 4 5 6. или я что то недопоняла...
FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
19.05.2010, 14:07     Использование функций шаблонов #9
Цитата Сообщение от LiLi R. Посмотреть сообщение
для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода и вывода массива а также шаблон для решения задачи - Заменить вселементы меньшие заданного числа этим числом
Если я правильно все понял:
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
#include<iostream>
#include<conio.h>
using namespace std;
 
/* Выводит на консоль 2х мерный массив произвольного типа*/
template <typename T>
void out(T *a, int n, int m)
{
    for(int i = 0; i < n; ++i)
    {
        for(int j = 0; j < m; ++j)
            cout << *a++ << " ";
        cout << endl;
    };
}
/* Считывает с консоли 2х мерный массив произвольного типа*/ 
template <typename T>
void in(T *a, int n, int m)
{
    for(int i = 0; i < n; ++i)    
        for(int j = 0; j < m; ++j)
        {
            cout << "Vvedite elem s indexom ["<< i << "," << j <<"] = ";
            cin >> *a++/* << " "*/;
        }
}
 
 
/* Заменяет все элементы значение, кот. меньше переменной zam,
   значением этой же переменной*/
template <typename T>
void Zamena(T *a, int n, int m, T zam)
{
    for(int i = 0; i < n; ++i)    
        for(int j = 0; j < m; ++j)        
            if( *a < zam)
                *a++ = zam;
}
 
void main() 
{
    // для простоты используем массив 2х3, 
    int x1[2][3] = {1, 2, 3,
                    4, 5, 6};
 
    //in<int>(&x1[0][0], 2, 3);  // Раскоментируй для ввода с клавиатуры
    
    out<int>(&x1[0][0], 2, 3); //отрисовыем массив
 
    int repl = 0; 
 
    /* считываем число с кот. будем сравнивать элем массива */
    cout << "Vvedite 4islo: "; cin >> repl;
    // заменяем
    Zamena<int>(&x1[0][0], 2, 3, repl);
    cout << "Posle zameni: \n";
    out<int>(&x1[0][0], 2, 3);  // снова выводим
    _getch();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2010, 20:04     Использование функций шаблонов
Еще ссылки по теме:

C++ использование функций шаблонов (выяснить является ли матрица симметричной относительно главной диагонали)
использование функций шаблонов C++
Задача по С++ на Использование функций шаблонов! C++
C++ Определение и использование шаблонов функций для обработки массивов
Использование шаблонов функций в задаче на двумерные массивы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
LiLi R.
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 82
19.05.2010, 20:04  [ТС]     Использование функций шаблонов #10
FireNovel, Я у тебя в долгу.
Yandex
Объявления
19.05.2010, 20:04     Использование функций шаблонов
Ответ Создать тему
Опции темы

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