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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить количество учеников класса, рост которых не превышает значение L http://www.cyberforum.ru/cpp-beginners/thread1497123.html
2.Рост каждого из 25 учеников класса представлен в виде массива. Определить количество учеников, рост которых не превышает значение L.
C++ Определить порядковый номер самого быстрого автомобиля (по данным из массива) 1.В массиве хранится информация о максимальной скорости каждой из 40 марок легковых автомобилей. Определить порядковый номер самого быстрого автомобиля. Если таких автомобилей несколько, то должен быть найден номер первого из них. http://www.cyberforum.ru/cpp-beginners/thread1497122.html
C++ Считывание до конца входного потока
Что значит считывание данных до конца входного потока? Знаю, что на C++ реализуется так. А что является концом входного потока? И как это реализовать в стиле языка Си? #include <iostream> int main() { int n; while (std::cin >> n) {}
C++ Что делают две решетки в макроссе?
Есть макрос: #define _RUNTIME_CLASS(class_name) ((CRuntimeClass*)(&class_name::class##class_name)) Что делают две решетки в макроссе? Например мы вызываем для класса my_class и что получается? ((CRuntimeClass*)(&my_class::class##my_class)) Получается указатель и на что две решетки заменяются?
C++ Полная явная инициализация многомерного массива http://www.cyberforum.ru/cpp-beginners/thread1497096.html
Помогите дать определение и приведите пример. Заранее спасибо!
C++ Детали реализации конструктора класса Есть конструктор условного класса картинки и я не совсем понимаю нескольких вещей: #include <iostream> #include <fstream> #include <string.h> #include <time.h> #include <math.h> #include "tgaimage.h" подробнее

Показать сообщение отдельно
valeriy007
65 / 10 / 2
Регистрация: 27.10.2014
Сообщений: 346
11.07.2015, 14:24     Добавление элемента в список
У меня есть список, пока в нем функции вывода данных 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());  
    }
*Добавление
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru