Шаг 11 - Списки

Для использования списков необходимо подключить заголовочный файл и выбрать область.

#include "list"

using namespace std;

Теперь список можно объявлять.

list< int > intList;
list< int > intListTest(3);
list< int > intListInit(3,1);

Сначала я объявляю просто пустой список способный хранить числа, дальше я указываю, что в списке 3 элемента и в последнем случае я еще и нициализирую этот список числом 1.

Количество элементов определяем функцией size():

cout << intListInit.size() << endl;

Можно проверить список на пустоту.

if (intList.empty()) cout << " int List empty " << endl; 

Для вставки можно использовать три метода Insert(), push_back(), push_front().

// testList.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "iostream"
#include "list"

using namespace std;

list< int > intList;
list< int > intListTest(3);
list< int > intListInit(3,1);

void ViewintListInit();

void main()
{
	cout << intListInit.size() << endl;
	if (intList.empty()) cout << " int List empty " << endl; 
	ViewintListInit();
	intListInit.push_back(100);
	intListInit.push_front(0);
	intListInit.insert(intListInit.begin(),55); 
	ViewintListInit();
}

void ViewintListInit()
{
	copy(intListInit.begin(),intListInit.end(),
		ostream_iterator< int >(cout," "));
	cout << endl;
}

Из списка можно удалять элементы равные определенному значению.

intListInit.remove(1);
ViewintListInit();

Я немного сумбурно расказываю о списках, и вот по какой причине. Очень многие возможности векторов списков и так далее реализуются через итераторы. А вот про них я и не рассказал. Например, чтобы удалить произвольный элемент списка нужен итератор. Наверно в следующем шаге я остановлюсь на понятии итератор и всё станет проще.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 12.02.2000