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

Добавление элемента в список - C++

Восстановить пароль Регистрация
 
valeriy007
65 / 10 / 2
Регистрация: 27.10.2014
Сообщений: 341
11.07.2015, 14:24     Добавление элемента в список #1
У меня есть список, пока в нем функции вывода данных print, добавление add и вывод первого Begin() и последнего End() элементов.
Кликните здесь для просмотра всего текста
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
struct Rab
{   
    char *name; 
};
 
struct List{
private:
    Rab elem;
    List *next;
    List *begin = NULL;
    List *end = NULL;
public:
 
    void add(char *x)
    {
        List *add = new List;
        add->elem.name = x;
        add->next = NULL;
        if (!begin)
            begin = add;
        else
            end->next = add;
        end = add;
    }
 
    void print()
    {
        List *iter = begin;
        while (iter)
        {
            std::cout << iter->elem.name << std::endl;
            iter = iter->next;
        }
    }
    
    void Begin()
    {
        std::cout << begin->elem.name << std::endl;
    }
 
    void End()
    {
        std::cout << end->elem.name << std::endl;
    }
 
};

Кликните здесь для просмотра всего текста
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
int main()
{
    setlocale(0, "");
    List myList;
    char clk;
    
    while (1)
    {
        char *a = new char[];
        std::cin >> a;      
        
        myList.add(a);
        
        std::cout << "\n";
        myList.print();
 
        std::cout << "\n";
        myList.Begin();
        myList.End();
 
        std::cout << "Продолжить? y/n";
        clk = (char)_getch();
        system("cls");
        if (clk == 'n')         
            return 0;       
    }
}

Что я хочу:
1. Возможно ли сделать функцию Begin() с именем begin(), если есть уже указатель с таким именем
C++
1
List *begin = NULL;
2. Хотел сделать перегруженную функцию add чтобы можно было добавлять элементы в конец или в начало по желанию пользователя, например
C++
1
2
myList.add(a,myList.End());
myList.add(a,myList.Begin());
И элемент добавлялся соответственно в начало или конец.
Вот пытался
C++
1
2
3
4
void add(char *x, List *y)
    {
        if (y == y->Begin()){}
    }
Но понятно дело что void не может == моему List, а идей пока больше нет(

Добавлено через 27 минут
Попробовал еще так, но не то(
C++
1
2
3
4
5
6
typedef void (*func)();
 
    void add(char *a, func b)
    {
        if (b == Begin());  
    }
*Добавление
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2015, 14:24     Добавление элемента в список
Посмотрите здесь:

Добавление в список нового элемента C++
Оптимизировать добавление элемента в линейный список C++
Добавление элемента в список с проверкой уникальности C++
C++ Добавление элемента в линейный список после 1-го, 3-го, 5-го и т.д
C++ Добавление нового элемента в список
C++ Добавление элемента в список по номеру
Некорректное добавление элемента в двусвязный список C++
Добавление элемента в список C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VIKT0R
8 / 8 / 2
Регистрация: 15.11.2011
Сообщений: 78
11.07.2015, 14:46     Добавление элемента в список #2
Цитата Сообщение от valeriy007 Посмотреть сообщение
1. Возможно ли сделать функцию Begin() с именем begin(), если есть уже указатель с таким именем
Нет, невозможно. Можно, например printBegin().
Yandex
Объявления
11.07.2015, 14:46     Добавление элемента в список
Ответ Создать тему
Опции темы

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