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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Распараллеливание потоков http://www.cyberforum.ru/cpp-beginners/thread261958.html
Добрый день. У меня есть программ в которой Пузырьковая сортировка и Бинарный поиск выполняются в отдельных потоках, причём изначально они приостановленные, а уже в main'е в определённых моментах я к ним обращаюсь с помощью ResumeThread(). Нужно решить две задачи на распараллеливание. Первая: Распараллелить пузырьковую сортировку и main, таким образом что бы на каждой итерации сортировки...
C++ определить принадлежность точки треугольнику определить принадлежит ли точка, заданная координатам, треугольнику, который задан координатами вершин. КАК задать треугольник? и как потом определить принадлежит (не принадлежит) точка которую мы задаем для нашего треугольника? визначити чи належить точкаБзадана координатам,трикутнику,який заданий координатами вершин.ЯК задати трикутник? і як потім визначити чи належить(не належить) точка яку... http://www.cyberforum.ru/cpp-beginners/thread261949.html
Вывести в новый файл информацию о той продукции, количество которой менее заданной величины. C++
Решить задачу, используя структуру содержащую члены-данные и члены-функции. Подразумевается, что исходная информация храниться в текстовом файле input.txt, каждая строка которого содержит полную информацию о некотором объекте, результирующая информация должна быть записана в файл output.txt На основе данных входного файла составить инвентарную ведомость склада, включив следющие данные: вид...
Быстрая сортировка: упорядочить нечетные элементы матрицы по возрастанию C++
Задача: упорядочить нечетные элементы двумерного массива по возрастанию с помощью quicksort. Также нужно, чтобы программа подсчитала количество сравнений и перестановок и вывела это отдельно. Массив задается отдельной функцией, отсортированный печатается тоже отдельно (это сделано все). Главная проблема с подсчетом (не знаю как реализовать) и сама сортировка почему-то не до конца работает. ...
C++ Непонятная ошибка http://www.cyberforum.ru/cpp-beginners/thread261939.html
#include <iostream> #include <string> using namespace std; class CMessage { private: char *Text; char *SenderNick;
C++ Люди подскажите какой Microsoft Visual Studio 2010 вы используете? Значит проблема такая поставил Microsoft Visual Studio 2010 Express. Очень многие коды не работают. Вообще в чем проблема. Может другую версию надо поставить? подробнее

Показать сообщение отдельно
Alex1234
13 / 13 / 0
Регистрация: 11.02.2011
Сообщений: 55
22.03.2011, 18:31     Использование функций-шаблонов
Ввод вывод можно так:
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
#include <iostream>
 
using namespace std;
 
//-----------------------------------------------------------
template <class T, unsigned int n1, unsigned int n2>
void in(T (&t)[n1][n2])
{
    for(int i = 0; i < n1; i++)
    {
        for(int j = 0; j < n2; j++)
        {
            std::cout << "Введите элемент [" << i <<"]["<< j << "] ";
            std::cin >> t[i][j];
            std::cout << endl;
        }
    }
}
 
//-----------------------------------------------------------
template <class T, unsigned int n1, unsigned int n2>
void out(T (&t)[n1][n2])
{
    for(int i = 0; i < n1; i++)
    {
        for(int j = 0; j < n2; j++)
        {
            cout << "Элемент [" << i <<"]["<< j << "] = ";
            cout << t[i][j] << endl;
        }
    }
}
 
//-----------------------------------------------------------
int main(int argc, char *argv[])
{
    float f[5][5];
    in(f);
    out(f);
 
    return 0;
}
Остальное аналогично.

Добавлено через 43 минуты
Вся программуля:
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
#include <iostream>
 
using namespace std;
 
//-----------------------------------------------------------
template <class T, unsigned int n1, unsigned int n2>
void in(T (&t)[n1][n2])
{
    for(unsigned int i = 0; i < n1; i++)
    {
        for(unsigned int j = 0; j < n2; j++)
        {
            cout << "Введите элемент [" << i <<"]["<< j << "] ";
            cin >> t[i][j];
        }
    }
}
 
//-----------------------------------------------------------
template <class T, unsigned int n1, unsigned int n2>
void out(T (&t)[n1][n2])
{
    for(unsigned int i = 0; i < n1; i++)
    {
        for(unsigned int j = 0; j < n2; j++)
        {
            cout << "Элемент [" << i <<"]["<< j << "] = ";
            cout << t[i][j];
            cout << endl;
        }
    }
}
 
//-----------------------------------------------------------
template <class T, unsigned int n1, unsigned int n2>
void operation(T (&t)[n1][n2])
{
    if(!(n1 % 2))
    {
        T tmp;
        for(unsigned int i = 1; i < n1; i+=2)
        {
            for(unsigned int j = 0; j < n2; j++)
            {
                tmp = t[i][j];
                t[i][j] = t[i - 1][j];
                t[i - 1][j] = tmp;
            }
        }
    }
}
 
//-----------------------------------------------------------
int main(int argc, char *argv[])
{
    float f[4][3];
    in(f);
    cout << "\nВведенный массив:\n";
    out(f);
    operation(f);
    cout << "\nПреобразованный массив:\n";
    out(f);
 
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru