Слайд 2
![Контейнеры – это объекты Контейнеры-это объекты, содержащие другие объекты Существует](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/218971/slide-1.jpg)
Контейнеры – это объекты
Контейнеры-это объекты, содержащие другие объекты
Существует несколько различных типов
контейнеров. Например, классы vector, queue и list – последовательные контейнеры
Также есть ассоциативные контейнер, которые позволяют находить нужные значения на основе заданных ключевых значений
Слайд 3
![Векторы Векторы представляют собой динамические массивы, которые при необходимости могут](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/218971/slide-2.jpg)
Векторы
Векторы представляют собой динамические массивы, которые при необходимости могут увеличивать свой
размер.
Для доступа к его элементам можно использовать стандартное обозначение индексации массивов, несмотря на то что вектор – это динамический массив
Объявление вектора
vector iv; //Вектор нулевой длины
vector cv(5); //5-элементный вектор
vector iv2(iv); /*Создание вектора на основе вектора iv */
Слайд 4
![Функции-члены, определенные в классе vector](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/218971/slide-3.jpg)
Функции-члены, определенные в классе vector
Слайд 5
![Демонстрация базового поведения вуктора #include #include using namespace std; void](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/218971/slide-4.jpg)
Демонстрация базового поведения вуктора
#include
#include
using namespace std;
void main(){
vector v;/*создание вектора нулевой
длины*/
int i;
cout<<“размер=“<for(i=0;i<10;i++)
v.push_back(i);
cout<for(i=0;icout<for(i=0;i<10;i++)
v.push_back(i+10);
cout<for(i=0;icout<}
Слайд 6
![Доступ к вектору с помощью итератора В С++ массивы и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/218971/slide-5.jpg)
Доступ к вектору с помощью итератора
В С++ массивы и указатели тесно
связаны между собой
В библиотеке STL аналогичная связь между векторами и итераторами
Это значит, что к членам вектора можно обращаться с помощью индекса и с помощью итератора
Слайд 7
![Доступ к вектору с помощью итератора #include #include using namespace](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/218971/slide-6.jpg)
Доступ к вектору с помощью итератора
#include
#include
using namespace std;
void main(){
vector v;
int I;
for(i=0;i<10;i++)
v.push_back(‘A’+i);
vector::iterator
p=
=v.begin();/*Объявление итератора*/
while(p!=v.end()){
cout<<*p<<“ “;
p++;
}
}
Слайд 8
![Вставка и удаление элементов из вектора Есть возможность вставлять элементы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/218971/slide-7.jpg)
Вставка и удаление элементов из вектора
Есть возможность вставлять элементы в
середину вектора, используя функцию insert(). А удалять с помощью erase().
Слайд 9
![Вставка и удаление элементов из вектора #include #include using namespace](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/218971/slide-8.jpg)
Вставка и удаление элементов из вектора
#include
#include
using namespace std;
void main(){
vectorv;
int I;
for(i=0;i<10;i++)
v.push_back(‘A’+i);
for(i=0;icout<vector::iterator
p=
=v.begin();
p+=2;//указ. на 3-й элемент
v.insert(p,10,’X’);
for(i=0;icout<//удаление «Х»
v.erase(p,p+10);
for(i=0;icout<}
Слайд 10
![Списки Список-это контейнер с двунаправленным последовательным доступом к его элементам](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/218971/slide-9.jpg)
Списки
Список-это контейнер с двунаправленным последовательным доступом к его элементам
Класс list позволяет
получать к своим элементам только последовательный доступ в двух направлениях: от начала к концу и от конца к началу