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();

}


 

А также другие работы, которые могут Вас заинтересовать

28138. Правило Бугера-Вебера и “основной психофизический закон” Г.Т.Фехнера 36 KB
  Бугер пришел к выводу что величина едва заметного различия ЕЗР между двумя освещенностями непостоянна она возрастает пропорционально исходной освещенности: ΔL=kL. Другими словами отношение ЕЗР ΔL к исходному уровню освещенности есть величина постоянная; ΔL L= const. раз то и величина разностного порога ΔР = P1 Р2 повышалась в той же пропорции. Для веса в 200 граммов величина разностного порога составляла 6 граммов для 300 9 граммов и т.
28139. Понятие о психофизических шкалах. Основные методы психофизического шкалирования 530 KB
  Основные методы психофизического шкалирования. Методы психофизического шкалирования: 1. Методы воспроизведения и идентификации. Эти методы редко используются но имеют ценность для изучения кратковременной памяти так как позволяют оценить характер трансформации субъективного образа сигнала при его запечатлении и хранении.
28140. Интроспективная психология 40 KB
  Интроспекция лат. В качестве особого метода интроспекция была обоснована в работах Р. Виды интроспекции: аналитическая интроспекция; систематическая интроспекция; феноменологическое самонаблюдение. Человек в отличие от животных наделен разумной душой сознанием по отношению к которому применительна интроспекция.
28141. Европейский функционализм 44 KB
  Предметом психологии функционализм обозначает сознание и функционалистов не интересует строение сознания. Их интересуют два главных вопроса::Какова роль сознания психики в жизнедеятельности организмовУ истоков европейского функционализма стоял австрийский психолог Франц Брентано 18381917. Главной для новой психологии он считал проблему сознания. Для обозначения этого признака сознания Брентано предложил термин интенция .