11
11
Программа
Hero's Inventory 2.0
Демонстрирует работу с векторами
#include <iostream>
#include <string>
#include <vector>
using namespace std:
i nt mai n()
{
vector<string> inventory:
i nventory. push _ back ( "sword") :
nventory. push _ back ("а rmor") :
i nventory. push_back ( "shi el d"):
cout « "You have " « i nventory. s i ze() « " i tems. \n":
cout « "\nYour items: \n":
for (unsigned int i =О: i < inventory.size(): ++i)
{
cout << inventory[i] << endl:
- heros_inven-128
Глава
4.
Библиотека сrандартных шаблонов. Иrра «Виселица»
}
cout « "\nYou trade your sword for а battle ахе. ":
inventory[OJ = "battle ахе":
cout « "\nYour items:\n":
for (unsigned int i =О: i < inventory.size(): ++i)
{
cout << inventory[iJ << endl:
cout « "\nThe item name '" « inventory[OJ « "' has ":
cout « inventory[OJ.size() « " letters in it.\n":
cout « "\nYour shield is destroyed in а fierce battle. ":
inventory.pop_back():
cout « "\nYour items:\n":
for (unsigned int i =О: i < inventory.size(): ++i)
{
cout << inventory[i] << endl:
}
cout « "\nYou were robbed of all of your possessions
inventory.clear():
if ( i nventory. empty ())
Ьу а
thief.":
{
cout « "\nYou have nothi ng. \n":
}
else
{
cout
«
"\nYou have at least one item.\n":
}
return
0
}
inventory.clear():
Функция-член clear() удаляет все элементы вектора и устанавливает его значение в О. После выполнения предыдущей строки кода вектор
i nventory становится пустым.
if (inventory.empty())
Функция-член empty() класса vector действует примерно так же, как и функцияstring. Она возвращает true, если объект vector пуст, в против ном случае она возвращает false.
Если требуется вставить или удалить элемент в начале или конце вектора, то луч
ше всего использовать при этом функции-члены
push _ back ()
или
pop _ back ().
Одна ко если нужно вставить или удалить элемент в любой другой точке вектора (на
пример, с помощью функций
i nsert () или erase() ), то задача серьезно усложнится,
так как удаление или вставка повлияют на позиции сразу многих элементов.