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

Шаблоны в C++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти номера строк матрицы, все элементы которых чётны http://www.cyberforum.ru/cpp-beginners/thread1156605.html
Дали задание, но не объяснили как делать, а нужно срочно. Задание следующее: Дана действительная матрица порядка n. Номера строк, все элементы которых чётны. Добавлено через 10 минут Вывести на экран номера строк, все элементы которых чётны. Добавлено через 47 минут Начальный код: #include "stdafx.h" #include <iostream>
C++ Моделирование по схеме случайных событий В механический цех поступают листы металла. Длина листов может иметь размеры 9.1; 9.5; 10; 10.5; 11 (метров) с вероятностью 0.2; 0.1; 0.4; 0.1; 0.2. Согласно стандарту длина может быть 9, 10 или 11 метров. Разница отрезается и поступает в отход. С вероятностью 0.05 каждый лист может быть бракованным и также идет в отход. Найти % отходов http://www.cyberforum.ru/cpp-beginners/thread1156604.html
Удалить из строки все пробелы, расположенные перед знаком препинания C++
Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются. Удалить из строки все пробелы, расположенные перед знаком препинания.
C++ Не подключается stringstream в проект
Здравствуйте, у меня есть небольшой проект к которому подключено несколько сторонних библиотек. Сам проект разбит на 13 файлов, в каждом из них есть несколько подключеных библиотек. В заголовочных файлах везде #pragma once. Проблема в том что когда я хочу использовать в любом из файлов проекта stringstream, у меня Visual Studio начинает выдавать странные ошибки. Тоесть если я только включаю файл...
C++ Перегрузка функций - улучшить код http://www.cyberforum.ru/cpp-beginners/thread1156570.html
Решил сделать перегрузку функций, что то не могу сделать лучше подскажите как можно сделать лучше или помогите здесь, вернуть значение массива в место вызова Буду очень благодарен class.h class pluar
C++ Потоки с стандарте C++ 11. Отсутствуют экземпляры конструктора, соответствующие списку аргументов Tvector.push_back(thread(threadFunction,mas,i,3,4,76,55)); сама функция void threadFunction(int *arr, int b,int c , int z,int q,int r) { g_lock.lock(); cout << arr+1<<c<<z<<q<<endl; cout << "entered thread " << std::this_thread::get_id() << std::endl; g_lock.unlock(); подробнее

Показать сообщение отдельно
contedevel
 Аватар для contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 590
24.04.2014, 21:23     Шаблоны в C++
Здравствуйте!

Написал такой код:
Кликните здесь для просмотра всего текста
C++ (Qt)
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
#include <QtCore/QCoreApplication>
#include <iostream>
#include <string>
 
using namespace std;
 
template <typename T>
T getValue(string, T);
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    double pNOD = (double)getValue("Введите вероятность необнаружения ошибки:", 0.0);
    double pO   = (double)getValue("Введите вероятность искажения символов:", 0.0);
    int    k    = (int)getValue("", 0);
 
    cout << pNOD << " " << pO << " " << k << endl;
 
    return a.exec();
}
 
template <typename T>
T getValue(string str, T value) {
    cout << str << endl;
    cin >> value;
    while(!cin) {
        cout << "Вы ввели некорректное число! Попробуйте ещё раз:" << endl;
        cin.clear();
        cin.ignore();
        cin >> value;
    }
    return value;
}


Собственно вопрос: Можно ли как-то изменить функцию getValue, чтобы не передавать ей не нужный параметр для указания конкретного типа данных T. Или к примеру, чтобы в качестве второго параметра просто указывать double, float или int.

Заранее спасибо за Ваш ответ!

Добавлено через 5 минут
Сделал другой велосипед, но реализация всё равно кажется корявой
Кликните здесь для просмотра всего текста
C++ (Qt)
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
#define TYPE_DOUBLE 0.0
#define TYPE_INT 0
#include <QtCore/QCoreApplication>
#include <iostream>
#include <string>
 
using namespace std;
 
template <typename T>
T getValue(string, T);
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    double pNOD = (double)getValue("Введите вероятность необнаружения ошибки:", TYPE_DOUBLE);
    double pO   = (double)getValue("Введите вероятность искажения символов:", TYPE_DOUBLE);
    int    k    = (int)getValue("", TYPE_INT);
 
    cout << pNOD << " " << pO << " " << k << endl;
 
    return a.exec();
}
 
template <typename T>
T getValue(string str, T value) {
    cout << str << endl;
    cin >> value;
    while(!cin) {
        cout << "Вы ввели некорректное число! Попробуйте ещё раз:" << endl;
        cin.clear();
        cin.ignore();
        cin >> value;
    }
    return value;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru