46291

Вектор в c++

Доклад

Информатика, кибернетика и программирование

Кроме массивов в c++ существуют еще контейнеры, которые позволяют вам немного по другому хранить данные и, вдобавок, применять к ним различные функции (поиск, сортировка и т.д.) . Сегодня вы узнаете об одном из контейнеров - векторе (vector)

Русский

2013-11-27

11.81 KB

7 чел.

Вопрос 6. Вектор.

Кроме массивов в c++ существуют еще контейнеры, которые позволяют вам немного по другому хранить данные и, вдобавок, применять к ним различные функции (поиск, сортировка и т.д.) . Сегодня вы узнаете об одном из  контейнеров - векторе (vector)

Вектор - динамический массив с возможностью добавления/удаления элементов.

Возможно вы уже сталкивались с такой проблемой, что массивы в с++ имеют ограниченный размер, а мы точно не знаем количество элементов, необходимое в массиве. В таких случаях необходимо использовать динамическое программирование. Т.е. выделять память под элементы массива при необходимости добавить какой-либо элемент. В принципе, в с++ это можно реализовать вручную, но зачем? если есть специальный класс - vector. Он позволяет создавать нам массивы переменной длинны в зависимости от ситуации.

Решение – выделить память нужного размера и скопировать старые данные.

void Add(float value)

{

size++;

float* tmp = new float[size];

if(data != 0)

{

for(int i = 0; i < size - 1; i++)

tmp[i] = data[i];

delete data;

}

tmp[size - 1] = value;

data = tmp;

}

void main()

{

wcout.imbue(locale("russian_Russia.866"));

wcin.imbue(locale("russian_Russia.866"));

Vector v;

v.Print();

v.Add(0);

v.Add(1);

v.Add(2);

v.Print();

v.Remove();

v.Print();

_getch();

}