Векторы: определение, свойства, примеры
Вектор в C++ - это динамический массив, который обеспечивает удобный и эффективный способ хранения и обработки элементов. Для работы с векторами в C++ используется стандартная библиотека шаблонов (STL).
Создание вектора
Для создания вектора нужно подключить заголовочный файл
c++
#include
std::vector numbers; // создание вектора целых чисел
Также можно создать вектор, заполненный значениями из другого массива:
c++
int myArray[] = {1, 2, 3, 4, 5};
std::vector numbers(myArray, myArray + sizeof(myArray) / sizeof(int)); // создание вектора из массива
Добавление и удаление элементов
Для добавления элементов в вектор используется метод push_back():
c++
numbers.push_back(6); // добавление элемента в конец вектора
Для удаления элемента из вектора можно использовать метод erase() с указанием индекса удаляемого элемента:
c++
numbers.erase(numbers.begin() + 3); // удаление элемента с индексом 3
Доступ к элементам
Для доступа к элементам вектора используется оператор [] или метод at(). Оператор [] позволяет получить доступ к элементу по его индексу:
c++
int thirdNumber = numbers[2]; // получение третьего элемента вектора (индекс 2)
Метод at() также позволяет получить доступ к элементу по его индексу, но при попытке обратиться к несуществующему элементу метод вызовет исключение:
c++
int thirdNumber = numbers.at(2); // получение третьего элемента вектора (индекс 2)
Итерация по вектору
Для итерации по элементам вектора можно использовать цикл for:
c++
for (int i = 0; i < numbers.size(); i++) {
int number = numbers[i];
// обработка элемента
}
Также можно использовать синтаксис цикла foreach (начиная с C++11):
c++
for (int number : numbers) {
// обработка элемента
}
Примеры кода
Пример 1. Создание вектора, добавление и удаление элементов:
c++
#include
#include
int main() {
std::vector numbers; // создание пустого вектора
numbers.push_back(1); // добавление элемента в вектор
numbers.push_back(2);
numbers.push_back(3);
std::cout << "Vector before deletion:" << std::endl;
for (int number : numbers) {
std::cout << number << std::endl; // вывод элементов вектора
}
numbers.erase(numbers.begin() + 1); // удаление второго элемента вектора
std::cout << "Vector after deletion:" << std::endl;
for (int number : numbers) {
std::cout << number << std::endl; // вывод элементов вектора
}
return 0;
}
Вывод:
Vector before deletion:
1
2
3
Vector after deletion:
1
3
Пример 2. Создание вектора из массива, доступ к элементам:
c++
#include
#include
int main() {
int myArray[] = {1, 2, 3, 4, 5};
std::vector numbers(myArray, myArray + sizeof(myArray) / sizeof(int)); // создание вектора из массива
std::cout << "Third number: " << numbers[2] << std::endl; // доступ к третьему элементу
std::cout << "Size: " << numbers.size() << std::endl; // вывод размера вектора
return 0;
}
Вывод:
Third number: 3
Size: 5