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

Переменное число аргументов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В одномерном массиве с чётным количеством элементов 2N http://www.cyberforum.ru/cpp-beginners/thread637544.html
#include <iostream> #include <iomanip> #include <vector> #include <cmath> using namespace std; int main() { int n; float a;
C++ Огромный размер массива Как присвоить массиву типу char размер 10100. Или придется писать char mass[1000000... Может есть какая функция, увеличивающая размер массива? http://www.cyberforum.ru/cpp-beginners/thread637530.html
C++ cpp, перегрузка операторов
Здравствуйте. Можете, пожалуйста, объяснить, как, например, перегрузить операцию умножения вида const obj& operator*(double а), только справа. Сам сделал следующее: friend const orbital operator*(double c,const obj&M);.... const obj operator*(double c,const obj&M) { obj m(M); (M.coef)*=c; return m; } Хотелось бы, чтоб оператор принимал double и одну const obj&M и возвращал ссылку.
C++ Подсчитать количество пар
Дан массив чисел а1,...,аn. Выяснить, имеются ли в данном массиве два идущих подряд положительных элемента. Подсчитать количество таких пар.
C++ В упорядоченном по убыванию массиве найти разность между наименьшим значением и последним элементом, большим Р http://www.cyberforum.ru/cpp-beginners/thread637464.html
В упорядоченном по убыванию массиве найти разность между наименьшим значением и последним элементом, большим Р.
C++ Факториал Дано целое число N (> 0). Найти двойной факториал N: N!! = N•(N–2)•(N–4)•… (последний сомножитель равен 2, если N — четное, и 1, если N — нечетное). Чтобы избежать целочисленного переполнения, вычислять это произведение с помощью вещественной переменной и вывести его как вещественное число. Помогите пожалуйста с задачей подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
15.08.2012, 00:47     Переменное число аргументов
Вот то что вышло у меня
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
#include <vector>
#include <string>
#include <sstream>
#include <typeinfo>
#include <iostream>
using namespace std;
 
struct Argument
{
    string stype;
    string value;
};
 
class CArgList
{
private:
    int i;
    vector<Argument> vec;
    vector<Argument>::iterator it;
public:
    CArgList()
    {
        i = 0; 
        vec.empty();
    }
    template <typename T>
    bool operator <<(T arg);
    bool operator >>(Argument &pArg);
};
 
template <typename T>
bool CArgList::operator <<(T arg)
{
    Argument pArg;
    stringstream ss;ss<<arg;
    pArg.stype    = typeid(T).name();
 
    bool flag = true;
    if(ss>>pArg.value)
        vec.push_back(pArg);
    else
        flag = false;
    return flag;
}
 
bool CArgList::operator >>(Argument &pArg)
{
    bool flag = true;
    if(vec.begin() + i < vec.end())
    {
        it = vec.begin() + i;
        pArg = (*it);
        i  = i + 1;
    }
    else
        flag = false;
    return flag;
}
 
int main()
{
    CArgList pArgList;
    pArgList<<23;
    pArgList<<":";
    pArgList<<37;
    pArgList<<"YurA done it";
    Argument pArg;
    while(pArgList>>pArg)
        cout<<pArg.stype<<" - "<<pArg.value<<endl;
    return 0;
}
Единственное с перегрузкой << не до конца доработал, но в целом мне нравиться, да и кода мало
http://liveworkspace.org/code/2e6b05...068d853e89f43f
Отработка
i - 23
PKc - :
i - 37
PKc - YurA
Миниатюры
Переменное число аргументов  
 
Текущее время: 14:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru