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

Работа с Массивами: реализация списка через массив? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
AntoxaS
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 6
28.05.2010, 23:07     Работа с Массивами: реализация списка через массив? #1
В общем:

Можно ли записать в ячейку массива больше одного символа?
Можно ли с помощью массива сделать к примеру список дел, т.е. я пишу "Вымыть посуду", "Помыть пол" и эта информация вводится в первую и вторую ячейку массива соотвественно,
Если же нельзя, то подскажите как можно реализовать это? (т.е. чтобы записывать дела и чтобы потом их можно было удалять - редактировать - добавлять.

И еще: Можно ли как нибудь обойти "огрниченность массива"
Мы к примеру имеем
const int n=10;
int mass[n]={1......}

Можно сделать [n] - динамичной? Возвращаясь к тому же списку дел, чтобы если дел например больше 10 то массив увеличивался бы на 1. Я пробовал n делать не константой, но выдавалась ошибка.

Помогите мне пожалуйста. Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
28.05.2010, 23:14     Работа с Массивами: реализация списка через массив? #2
1)Можно использовать тип данных string, вот пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
 
int main ()
{
    std::string MAS[2];
    MAS[0]="Posuda";
    MAS[1]="Pol";
 
    std::cout << "MAS[0]: " << MAS[0] << std::endl;
    std::cout << "MAS[1]: " << MAS[1] << std::endl;
    return 0;
}
2) Советую прочитать вам про STL, а именно про контейнеры vector и list.
А если говорить именно про массивы, то нет, его размер увеличивать нельзя никаким образом, только если создавать новый.
AntoxaS
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 6
28.05.2010, 23:19  [ТС]     Работа с Массивами: реализация списка через массив? #3
Хорошо, тогда как можно реализовать то о чем я говорил?
Т.е. мне нужно список дел который можно отсортировать также отредактировать любое из дел удалить.
НеПродюссер
 Аватар для НеПродюссер
32 / 20 / 3
Регистрация: 05.03.2010
Сообщений: 51
28.05.2010, 23:30     Работа с Массивами: реализация списка через массив? #4
используйте односвязные списки, друг мой=) у них нет ограничения по количеству элементов, ибо каждый новый элемент всатвляется в голову списка (классика), а все остальные не сдвигаются в памяти, а просто ко второму элементу приписывается связь.

Советую использовать двусвязные списки, либо односвязные циклические...=)

Элемент списка - это ячека, куда можно забить данное любого типа, внезависимости от размера. Тип данных определяете вы, ну и конечно работать не с индексами, а с указателями одно удовольствие. Прочитайте что-нибудь про списки, они предельно просты=)
AntoxaS
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 6
28.05.2010, 23:48  [ТС]     Работа с Массивами: реализация списка через массив? #5
Прочел только что про Вектор, в принципе вот то что мне надо, вот только как реализовать я пока что не могу понять!

Помогите пожалуйста, мне нужно чтобы в диалоговом окне Была надпись добавьте запись,
ты ее печатаешь она добавляется в список и потом открывается окно со всем списком ( причем лучше если будет добавляться снизу а не сверху.
НеПродюссер
 Аватар для НеПродюссер
32 / 20 / 3
Регистрация: 05.03.2010
Сообщений: 51
28.05.2010, 23:51     Работа с Массивами: реализация списка через массив? #6
могу скинуть класс добавления в односвязный циклических список в голову любых данных=) нужно?просто это не векторы=)
AntoxaS
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 6
28.05.2010, 23:55  [ТС]     Работа с Массивами: реализация списка через массив? #7
Ну скиньте может чем и поможет.

А вопрос остается открытым:
1. Помогите реализовать программу "список дел"
Где можно будет добавлять дела к примеру "Помыть посуду"
"Вымыть пол"
Затем просматривать дела ( т.е. будет отображаться ):
1 - Помыть посуду.
2 - Вымыть пол.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2010, 00:09     Работа с Массивами: реализация списка через массив?
Еще ссылки по теме:

C++ Работа с классом через массив
Работа с массивами через указатели, адреса. Функция сортировки выбором любого массива C++
Реализация списка в классе. C++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
НеПродюссер
 Аватар для НеПродюссер
32 / 20 / 3
Регистрация: 05.03.2010
Сообщений: 51
29.05.2010, 00:09     Работа с Массивами: реализация списка через массив? #8
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
class TNode {
public :
    char *data;
    TNode *next;
    TNode(char *_data, TNode *_next) {
        data = _data;
        next = _next;
    }
};
 
class List {
 
private : 
    TNode *head;
 
public :
 
    List() {
        head = NULL;
    }
 
    void print() {
        if (head == NULL) {
            return;
        }
        if (head->next == head) {
            printf("%d", head->data);
            return;
        }
        TNode *temp = head;
        while (temp->next != head) {
            printf("%d", temp->data);
            temp = temp->next;
        }
    }
 
    void addToHead(char *data) {
        TNode *forward = head;
        if (head == NULL) {                
            head = new TNode(data, NULL);
            head->next = head;
        } else {
            head = new TNode(data, head);
        }
        forward->next = head;
    }
    void pasteNewDeal() {
        TNode *temp = NULL;
        char *tmp = NULL;
        scanf("%s", tmp);
        temp->next = new TNode(data, temp->next->next);
        temp->next->data = tmp;
    }
        
    void fill() {
        printf("input a new deal : ");
            char *el;
            scanf("%s", &el);
            addToHead(el);
    }
};
веселый класс - мне нравится=)
Yandex
Объявления
29.05.2010, 00:09     Работа с Массивами: реализация списка через массив?
Ответ Создать тему
Опции темы

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