Форум программистов, компьютерный форум, киберфорум
Наши страницы

Работа с STL. Поменять vector на list - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ как определить http://www.cyberforum.ru/cpp-beginners/thread294475.html
как определить программно,что человек допустим зашёл на диск f или g и тд?
C++ Создать класс, описание которого представлено в вариантах для работы Поможыть пліз з лабой!!!!!!!!! 1. Створити проект, який містить консольну програму Win32. 2. Створити клас опис якого подано у варіантах до роботи (a) Отримання кількості елементів які... http://www.cyberforum.ru/cpp-beginners/thread294474.html
Перейти в конец проги C++
Здравствуйте. Как можно в С или в С++ перейти в конец проги? Это типа endl в Паскале.
C++ Деревья-формулы
7. Формулу вида: < формула > ::= < терминал >(< формула > < знак > < формула >) < знак > ::= +  -  * < терминал > ::= 0123456789 можно представить в виде двоичного дерева (‘дерева...
C++ Функция должна возвращать указатель на первый элемент массива,удовлетворяющий условию http://www.cyberforum.ru/cpp-beginners/thread294453.html
Функция должна возвращать указатель на первый элемент массива,удовлетворяющий условию(в данном случае используется указатель на бинарный предикат).Иначе возвращает адрес arr+len. int equals(int...
C++ Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' void crpost(const statep &struc1) { int i = 0; int j = 0; char buf ; char *pbuf = &buf; //<- вот... подробнее

Показать сообщение отдельно
OMAAGAAD
15 / 15 / 3
Регистрация: 24.09.2010
Сообщений: 45

Работа с STL. Поменять vector на list - C++

13.05.2011, 08:59. Просмотров 1173. Ответов 9
Метки (Все метки)

Программа должна быть написана так, чтобы достаточно было заменить в
одном месте vector на list и приложение делало все то же самое. Если
что-то не получится -- надо будет это обосновать.
Вот что получилось у меня, но проблемы в вышесказанном. Не пойму как это реализовать
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
#include <iostream>
#include <list>
#include <vector>
#include <algorithm>
#include <math.h>
using namespace std;
int main()
{
    list <int> c;
    int i=0,b=0;
    list<int>::iterator p;
    while(1)
    {
        scanf ("%d", &i);
        if (i==100500) break;
        c.push_back(i);
    }
    cout << "size = " << c.size() << "\n";
    //sort(c.begin(),c.end());
    for (p=c.begin();p!=c.end();p++)
        cout << *p << " ";
    cout<<endl;
    list <int>:: iterator minimum = min_element(c.begin(),c.end());
    cout<<"minimum="<<*minimum<<endl;
    list <int>:: iterator maximum = max_element(c.begin(),c.end());
    cout<<"maximum="<<*maximum<<endl;
    for(p=c.begin() ; p!=c.end() ; p++)
        b+=*p;
    cout<<"arithmetric average="<<b/c.size()<<endl;
    b=1;
    for(p=c.begin() ; p!=c.end() ; p++)
        {
            b*=(*p);
            if(b<0) 
            {
                b=0;
                cout<<"There is no geometric average"<<endl;
                break;
            }
        }
    cout<<"geometric average="<<pow(b,1.0/c.size())<<endl;
    if (c.size()%2==0)
        cout<<"Length is even"<<endl;
    else
    {
        p=c.begin();
        for(int i=0;i<c.size()/2;i++)
            p++;
            b=*p;
        cout<<"middle:"<<b<<endl;
    }
    c.clear();
}
Добавлено через 6 часов 58 минут
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
#include <iostream>
#include <list>
#include <vector>
#include <algorithm>
#include <math.h>
using namespace std;
typedef vector <int> array;
int main()
{
    array c;
    int i=0,b=0;
    array::iterator p;
    while(1)
    {
        cin>>i;
        if (i==100500) break;
        c.push_back(i);
    }
    cout << "size = " << c.size() << "\n";
    sort(c.begin(),c.end());
    for (p=c.begin();p!=c.end();p++)
        cout << *p << " ";
    cout<<endl;
    array:: iterator minimum = min_element(c.begin(),c.end());
    cout<<"minimum="<<*minimum<<endl;
    array:: iterator maximum = max_element(c.begin(),c.end());
    cout<<"maximum="<<*maximum<<endl;
    for(p=c.begin() ; p!=c.end() ; p++)
        b+=*p;
    cout<<"arithmetric average="<<b/c.size()<<endl;
    b=1;
    for(p=c.begin() ; p!=c.end() ; p++)
        {
            b*=(*p);
            if(b<0) 
            {
                b=0;
                cout<<"There is no geometric average,because of definition"<<endl;
                break;
            }
        }
    cout<<"geometric average="<<pow(b,1.0/c.size())<<endl;
    if (c.size()%2==0)
        cout<<"Length is even"<<endl;
    else
    {
        p=c.begin();
        for(int i=0;i<c.size()/2;i++)
            p++;
            b=*p;
        cout<<"middle:"<<b<<endl;
    }
    c.clear();
}
все
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.