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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Индексация двухмерного массива char http://www.cyberforum.ru/cpp-beginners/thread109268.html
Подскажите пожалуйста, как правильно передать в функцию указатель на двухмерный массив char и как его индексировать? Спасибо.
C++ Вычислить сумму элементов массива, расположенных до минимального элемента здравствуйте! помогите пожалуйста решить: В одномерном массиве, состоящем из п целых элементов, вычислить сумму элементов массива, расположенных до минимального элемента. Упорядочить по возрастанию отдельно элементы, стоящие на четных местах и элементы, стоящие на нечетных местах. заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread109241.html
Рекурсивная функция, не возвращающая значения, которая удаляет из заданной строки все точки C++
вот код...есть ещё вариант с массивом, но он тоже не работает =( тем более препод сказал, что через массив делать не стоит...=( #include <iostream> #include <cstring> using namespace std; void func(string str) {if(str==”\0”) return; if(str==”.”) str=” “; func(str+1);}
Даны два угла треугольника (в градусах ). Определить существует ли такой треугольник C++
2. Даны два угла треугольника (в градусах ). Определить существует ли такой треугольник. Если да, то будет ли он прямоугольным.,,, что посоветуете? Добавлено через 5 минут ну помогите плз....
C++ параллелограмм>> http://www.cyberforum.ru/cpp-beginners/thread109211.html
3. Даны четыре точки А1(x1, y1), А2(x2, y2), А3(x3, y3), А4(x4, y4). Определить будут ли они вершинами параллелограмма......очень нужен совет мне....
C++ В массивах a[k] и b[l] хранятся коэффициенты двух многочленов. Поместить в массив c[m] коэффициенты их произведения Парни погодите дописать! Задача такая: В массивах a и b хранятся коэффициенты двух многочленов. Поместить в массив c коэффициенты их произведения. (Числа k, l, m - натуральные, m = k + l; элемент массива с индексом i содержит коэффициент при x в степени i.) У меня есть не законченный код: #include<stdio.h> #include<stdlib.h> #include<time.h> #include<signal.h> подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
28.03.2010, 08:29     Использование шаблонных функций
Создание, инициализация (ввод с клавиатуры), копирование, вывод на экран, уничтожение матриц:
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
#include <iostream>
#include <iomanip>
 
#define get(m, r, c) \
    {\
        std::cout << "Введите " << #m << "[" << r << "][" << c << "]: ";\
        std::cin >> m[r][c];\
    }
 
template<class T>
void create(T**& m1, T**& m2, size_t r,  size_t c)
{
    m1=new T*[r];
    m2=new T*[r];
    for(size_t i=0; i<r; ++i)
    {
        m1[i]=new T[c];
        m2[i]=new T[c];
    }
}
 
template<class T>
void init(T** m1, size_t r, size_t c)
{
    for(size_t i=0; i<r; ++i)
        for(size_t j=0; j<c; ++j)
            get(m1, i, j);
}
 
template<class T>
void destroy(T**& m1, T**& m2, size_t r)
{
    for(size_t i=0; i<r; ++i)
    {
        delete[] m1[i];
        delete[] m2[i];
    }
    delete[] m1;
    delete[] m2;
}
 
template<class T>
void display(T** m1, size_t r, size_t c)
{
    for(size_t i=0; i<r; ++i, std::cout << std::endl)
        for(size_t j=0; j<c; ++j)
            std::cout << std::setw(6) << m1[i][j];
}
 
template<class T>
void copy(T** m1, T** m2, size_t r, size_t c)
{
    for(size_t i=0; i<r; ++i)
        for(size_t j=0; j<c; ++j)
            m2[i][j]=m1[i][j];
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    size_t row, col;
    std::cout << "Введите размеры матриц:" << std::endl;
    std::cout << "Число строк: ";
    std::cin >> row;
    std::cout << "Число столбцов: ";
    std::cin >> col;
    int **im1, **im2;
    std::cout << "Заполнение массива int:" << std::endl;
    create(im1, im2, row, col);//Выделение памяти
    init(im1, row, col);//Инициализация
    copy(im1, im2, row, col);//Копирование
    std::cout << "Вывод скопированного массива:" << std::endl;
    display(im2, row, col);//Вывод
    destroy(im1, im2, row);//Высвобождение памяти
    //И так далее для char**, double**, float** ...
    system("pause");
    return 0;
}
 
Текущее время: 19:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru