vector

Ответить
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

vector

Сообщение ya »

Код: Выделить всё

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
}
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Re: vector

Сообщение ya »

inventory.clear():
Функция-член clear() удаляет все элементы вектора и устанавливает его зна­чение в О. После выполнения предыдущей строки кода вектор
i nventory становит­ся пустым.



if (inventory.empty())


Функция-член empty() класса vector действует примерно так же, как и функция­string. Она возвращает true, если объект vector пуст, в против­ ном случае она возвращает false.
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Re: vector

Сообщение ya »

Рис. 4.5. Алгоритмы STL для поиска, перемешивания и сортировки элементов в векторе с таблицей рекордов

Код: Выделить всё

#include <algorithm>
#include <ctime>
#include <cstdlib>
using namespace std:
int main()
{
vector<int>: :const_iterator iter:
cout « "Creating а list of scores. ":
vector<int> scores:
scores.push_back(1500):
scores.push_back(3500):
scores.push_back(7500):
cout « "\nHigh Scores:\n":
for (iter = scores.begin(): iter != scores.end(): ++iter)
{
cout << *iter << endl:
cout « "\nFinding а score. ":
i nt score:
cout « "\nEnter а score to find: "
cin » score:
iter = find(scores.begin(). scores.end(). score):
if (iter != scores.end())
{
cout « "Score found. \ n" :
cout « "Score not found. \ n" :
}
else
{
cout « "\nRandomizing scores. ":
srand(static cast<unsigned int>(time(Q))):
random_shuffle(scores.begin(). scores.end()):140
Глава
4.
Библиотека стандартных шаблонов. Игра «Виселица»
cout « "\nHigh Scores:\n";
for (iter = scores.begin(); iter != scores.end(); ++iter)
{
cout << *iter << endl:
}
cout « "\nSorting scores.":
sort(scores.begin(). scores.end());
cout « "\nHigh Scores:\n":
for (iter = scores.begin(); iter != scores.end(); ++iter)
{
cout<< *iter<<endl:
}
return 0;
}
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

Re: vector

Сообщение ya »

Если требуется вставить или удалить элемент в начале или конце вектора, то луч­
ше всего использовать при этом функции-члены
push _ back ()
или
pop _ back ().
Одна­ ко если нужно вставить или удалить элемент в любой другой точке вектора (на­
пример, с помощью функций
i nsert () или erase() ), то задача серьезно усложнится,
так как удаление или вставка повлияют на позиции сразу многих элементов.
Ответить