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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
#1

list - C++

02.08.2012, 01:01. Просмотров 645. Ответов 12
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане.
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
#include <iostream.h>
#include <list>
#include <conio.h>
 
template <class T>
class Array
{
    list<int>_list;
        public:
    Array();
    ~Array();
    void push();
};
 
template <class T>
void Array<T>::push()
{
    cout<<"Vvedite elementu: ";
 
}
 
 
int main()
{
 
 
    getch();
    return 0;
}
Вопрос такой:
как воспользоваться листом в функции и как эту функцию вызвать ф мейне
заранее спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lupus1libertas
3 / 3 / 0
Регистрация: 27.07.2012
Сообщений: 19
02.08.2012, 01:04     list #2
list:: push_back(value) ,если мне не изменяет память .

вывод на примере числового типа:
list<int> a ;
...

for(list<int>::iterator iter = a.begin();iter!=a.end();++iter)
cout<<*iter<<' ';
novi4ok
550 / 503 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
02.08.2012, 01:05     list #3
где взял этот пример?
Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
02.08.2012, 01:06  [ТС]     list #4
но можно полностью для нуба
lupus1libertas
3 / 3 / 0
Регистрация: 27.07.2012
Сообщений: 19
02.08.2012, 01:06     list #5
библиотека stl
Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
02.08.2012, 01:07  [ТС]     list #6
novi4ok, сам пытаюсь написать, это не пример
lupus1libertas
3 / 3 / 0
Регистрация: 27.07.2012
Сообщений: 19
02.08.2012, 01:13     list #7
http://www.codenet.ru/progr/cpp/stl/istl.php

Добавлено через 3 минуты
template <class T>
void Array<T>:: push(T val)
{
//cout<<"Vvedite elementu: ";Негоже контейнеру разговаривать с пользователем ,но это мое
//видение .
_list.push_back(val);


}
Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
02.08.2012, 01:19  [ТС]     list #8
а в мейне
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.08.2012, 02:21     list #9
Вы объявили шаблонный класс для обобщённого типа данных T, и нигде в классе этот тип данных не используете. Наверное, можно, что-то такое написать:
Код
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 <conio.h>
using namespace std;
 
template <class T>
class Array
{
    list<T>_list;
        public:
    Array()
    {}
    ~Array()
    {}
    int push();
    void show();
};
 
template <class T>
int Array<T>::push()
{
    cout<<"Vvedite elementu: ";
    T temp;
    while (cin >> temp && temp != EOF) 
      _list.push_back(temp);
    cin.clear();
    return 0;
}
 
template <class T>
void Array<T>::show()
{
    if (_list.empty()) cout << "List empty!" << endl;
    else
    for (list<T>::iterator iter = _list.begin(); iter != _list.end(); iter++)
        cout << *iter << endl;
    
}
 
 
int main()
{
    Array<int> a;
    a.push();
    a.show();
 
    Array<char> b;
    b.push();
    b.show();
 
    getch();
    return 0;
}
Прерывание ввода сами додумайте. Тут неудачное. Для char - нормально. Для int и double при -1 будет срабатывать. Да и, вообще, в методах не рекомендуется ввод делать.
Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
02.08.2012, 13:07  [ТС]     list #10
а как добавлять по одному элементу в конец списка и удалять по одному элементу в начале
заранее спасибо
Avazart
7045 / 5222 / 259
Регистрация: 10.12.2010
Сообщений: 22,949
Записей в блоге: 17
02.08.2012, 14:10     list #11
C++
1
2
_list.pop_front();
_list.push_back( obj );
Добавлено через 3 минуты
Еще можно наследовать

C++
1
2
3
4
5
template <class T>
class Array :public std::list<T> 
{
//....
}
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.08.2012, 15:33     list #12
Цитата Сообщение от Mr. Pyatachok Посмотреть сообщение
а как добавлять по одному элементу в конец списка и удалять по одному элементу в начале
заранее спасибо
push_back(const T &val) - добавить элемент со значением val в конец списка.
push_front(const T &val) - добавить - в начало списка.
pop_back() - удалить последний элемент.
pop_front() - удалить первый элемент.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2012, 15:34     list
Еще ссылки по теме:

C++ итераторы в list
STL list C++
Контейнер list C++
C++ Преобразование списка list в *list
C++ Самодельный list

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

Или воспользуйтесь поиском по форуму:
Avazart
7045 / 5222 / 259
Регистрация: 10.12.2010
Сообщений: 22,949
Записей в блоге: 17
02.08.2012, 15:34     list #13
http://www.cplusplus.com/reference/stl/list/
Yandex
Объявления
02.08.2012, 15:34     list
Ответ Создать тему
Опции темы

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