Работа со стандартным контейнером std vector
std vector - это контейнер в стандартной библиотеке языка программирования C++, который представляет собой динамический массив, который автоматически расширяется при добавлении новых элементов. Это означает, что мы можем добавлять и удалять элементы из любого места vector, не беспокоясь о том, что массив будет заполнен или недостаточно большой.
Примеры использования vector:
Создание vector:
cpp
#include
#include
int main()
{
std::vector myVector; // Создание пустого вектора
// Добавление элементов в конец вектора
myVector.push_back(1);
myVector.push_back(2);
myVector.push_back(3);
// Вывод размера вектора
std::cout << "Size: " << myVector.size() << std::endl; // -> Size: 3
// Получение элемента по индексу
std::cout << "Element at index 2: " << myVector[2] << std::endl; // -> Element at index 2: 3
// Изменение значения элемента
myVector[1] = 4;
// Вывод элементов вектора
for (const auto& element : myVector)
{
std::cout << element << " ";
}
std::cout << std::endl; // -> 1 4 3
return 0;
}
Создание vector с начальным размером:
cpp
#include
#include
int main()
{
// Создание вектора с начальным размером 5 и значениями 0
std::vector myVector(5, 0);
// Вывод элементов вектора
for (const auto& element : myVector)
{
std::cout << element << " ";
}
std::cout << std::endl; // -> 0 0 0 0 0
return 0;
}
Использование итераторов vector:
cpp
#include
#include
int main()
{
std::vector myVector = {1, 2, 3, 4, 5};
// Использование итераторов
std::vector::iterator it = myVector.begin();
while (it != myVector.end())
{
std::cout << *it << " ";
it++;
}
std::cout << std::endl; // -> 1 2 3 4 5
return 0;
}
Удаление элементов из vector:
cpp
#include
#include
int main()
{
std::vector myVector = {1, 2, 3, 4, 5};
// Удаление элемента из вектора
myVector.erase(myVector.begin() + 3); // Удаление элемента с индексом 3
// Вывод элементов вектора
for (const auto& element : myVector)
{
std::cout << element << " ";
}
std::cout << std::endl; // -> 1 2 3 5
return 0;
}
Копирование vector:
cpp
#include
#include
int main()
{
std::vector myVector1 = {1, 2, 3, 4, 5};
// Копирование вектора
std::vector myVector2 = myVector1;
// Изменение значения элемента во втором векторе
myVector2[1] = 6;
// Вывод элементов двух векторов
for (const auto& element : myVector1)
{
std::cout << element << " ";
}
std::cout << std::endl; // -> 1 2 3 4 5
for (const auto& element : myVector2)
{
std::cout << element << " ";
}
std::cout << std::endl; // -> 1 6 3 4 5
return 0;
}