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

list. Cоздать список из результатов(с массивами), а потом просмотреть весь список - C++

Восстановить пароль Регистрация
 
!Андрей!
6 / 6 / 0
Регистрация: 31.01.2012
Сообщений: 134
28.12.2012, 14:41     list. Cоздать список из результатов(с массивами), а потом просмотреть весь список #1
Подскажите пожалуйста как мне создать список из моих результатов(с массивами)
а потом просмотреть весь список, вот код который имеется

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
# include <iostream>
# include <list>
using namespace std;
 
struct Number
{
    int res[500];
};
 
list<Number> nms;
 
class Run
{
int a, b, number;
int res[500];
public:
    int result, size;
    bool toNewSystem(unsigned int sys, int num)
    {
        Number nm;
        int i;
        for(i = 0; num >= sys; i++)
        {
            nm.res[i] = num % sys;
            num = num / sys;
        }
        nm.res[i] = result;
        if(i > 2)
        return false;
        else {size++; nms.push_back(nm); return true;}
    }
    void show()
    {
        for(int i = 0; i <= size; i++)
            nms.pop_back();
    }
    Run(){size = number = result = 0;}
};
 
int main()
{
    Run run;
    for(int i = 0; run.toNewSystem(5, i); ++i);
    run.show();
    cout << run.size << endl;
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2012, 14:41     list. Cоздать список из результатов(с массивами), а потом просмотреть весь список
Посмотрите здесь:

Связанный список (Linked list). C++
C++ как вывести список list С++
Упорядочить список студентов по среднему баллу и вывести весь список C++
C++ Однонаправленный список list
Внесение обїекта в список <list> STL C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
28.12.2012, 15:01     list. Cоздать список из результатов(с массивами), а потом просмотреть весь список #2
Цитата Сообщение от !Андрей! Посмотреть сообщение
C++
1
Run(){size = number = result = 0;}
неверная запись.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
28.12.2012, 15:17     list. Cоздать список из результатов(с массивами), а потом просмотреть весь список #3
Afflicted, в каком месте она не верная?

!Андрей!, изложите конкретней, что именно нужно сделать?
Learx
1032 / 839 / 85
Регистрация: 31.03.2010
Сообщений: 2,465
28.12.2012, 15:57     list. Cоздать список из результатов(с массивами), а потом просмотреть весь список #4
как-то так(написал с ходу за ошибки не ручаюсь)
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
# include <iostream>
# include <list>
using namespace std;
 
typedef list<int> list_int;
list< list_int > nms;
 
class Run
{
int a, b, number;
int res[500];
public:
    int result, size;
    bool toNewSystem(unsigned int sys, int num)
    {
        list<int> nm;
        int i;
        for(i = 0; num >= sys; i++)
        {
            nm.push_back(num % sys);
            num = num / sys;
        }
        nm.push_back(result);
        if(i > 2)
        return false;
        else {size++; nms.push_back(nm); return true;}
    }
    void show()
    {
        for(int i = 0; i <= size; i++)
            nms.pop_back();
    }
    Run(){size = number = result = 0;}
};
 
int main()
{
    Run run;
    for(int i = 0; run.toNewSystem(5, i); ++i);
    run.show();
    cout << run.size << endl;
    for (std::list<list_int >::iterator it=nms.begin(); it != nms.end(); ++it)
         for (std::list<int>::iterator tt = it->begin(); tt != it->end(); ++tt)
             std::cout << ' ' << *tt;
    system("pause");
    return 0;
}
Добавлено через 1 минуту
описание библиотек
!Андрей!
6 / 6 / 0
Регистрация: 31.01.2012
Сообщений: 134
29.12.2012, 14:38  [ТС]     list. Cоздать список из результатов(с массивами), а потом просмотреть весь список #5
Вопрос
Learx, спасибо! Примерно разобрался. Вопрос ещё такой остался: как я могу непосредственно впихивать числа в массив который будет храниться в структуре, а структура в списке. Примерно:

C++
1
2
3
4
5
6
7
8
9
10
11
struct Numb
{
   int res[500];
....
};
 
list<Numb> nmb;
//запись
...условия и т.п.
что-то типа:
nmb.res[i] = ....;
Добавлено через 59 минут
Проблему решил так, вопрос остался только в красивом выводе, почему-то не хочет работать=/
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
# include <iostream>
# include <list>
using namespace std;
 
typedef list<int> list_int;
list< list_int > nms;
 
struct Number
{
    int defaultNum;
    int result[4];
};
list <Number> nmb;
 
class Run
{
    int a, b, number;
    int res[500];
public:
    int result, size;
    bool toNewSystem(unsigned int sys, int num)
    {
        Number temp;
        list<int> nm;
        int i;
        for(i = 0; num >= sys && i <= 2; i++)
        {
            temp.result[i] = num % sys;
            nm.push_back(num % sys);
            num = num / sys;
        }
        if(i > 2)
            return false;
        temp.result[i] = result;
        temp.result[i+1] = '\0';
        nmb.push_back(temp);
        {size++; nms.push_back(nm); return true;}
    }
    void show()
    {
        cout << size << endl << endl;
        for(list<Number>::iterator it = nmb.begin(); it!=nmb.end(); it++)
        {
            for(int i = 0; it->result[i+1] != '\0'; i++)
                cout << it -> result[i] << " ";
        cout << endl;
        }
    }
        Run(){size = number = result = 0;}
    };
 
    int main()
    {
        Run run;
        for(int i = 1; run.toNewSystem(5, i); ++i);
        run.show();
        cout << endl;
        system("pause");
        return 0;
    }
Добавлено через 44 минуты
решил так, можно закрывать
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
# include <iostream>
# include <list>
# include <iomanip>
using namespace std;
 
typedef list<int> list_int;
list< list_int > nms;
 
struct Number
{
    int size;
    int defaultNum;
    int result[3];
};
list <Number> nmb;
 
class Run
{
public:
    int result, size;
    bool toNewSystem(unsigned int sys, int num)
    {
        Number temp;
        for(int i = 0; i < 3; i++)
            temp.result[i] = 0;
 
        int defNum = num;
        int i;
        for(i = 0; num >= sys; i++)
        {
            temp.result[i] = num % sys;
            num = num / sys;
            if(i >= 2) return false;
        }
        
        temp.result[i] = num;
        temp.size = 2;
        temp.defaultNum = defNum;
        swap(temp.result, 2);
        nmb.push_back(temp);
        return true;
    }
    void swap(int *arr, int size)
    {
     for(int i = 0,  j = size; i < j; ++i, --j) {
 
       int temp = arr[i];
       arr[i] = arr[j];
       arr[j] = temp;
     }
    }
    void show()
    {
        cout <<  nmb.size() << " - numbers" << endl << endl;
        for(list<Number>::iterator it = nmb.begin(); it!=nmb.end(); it++)
        {
            cout << setw(3) << it -> defaultNum << " = ";
            for(int i = 0; i <= it -> size; i++)
                cout << it -> result[i];
            cout << endl;
        }
    }
    Run(){result = 0;}
};
 
int main()
{
    Run run;
    for(int i = 1; run.toNewSystem(5, i); ++i);
    run.show();
    cout << endl;
    system("pause");
    return 0;
}
Yandex
Объявления
29.12.2012, 14:38     list. Cоздать список из результатов(с массивами), а потом просмотреть весь список
Ответ Создать тему
Опции темы

Текущее время: 06:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru