C++ Vector: The Ultimate Guide for Efficient Coding

Vector в языке программирования C++ представляет собой динамический массив, который может изменять свой размер во время выполнения программы. Это отличается от статического массива, который имеет фиксированный размер, определенный во время компиляции.

Для работы с vector в C++ необходимо подключить заголовочный файл . Создание строчного вектора происходит следующим образом:

c++
#include 
std::vector str_vec;
str_vec.push_back("первый элемент");
str_vec.push_back("второй элемент");
str_vec.push_back("третий элемент");
std::cout << "Размер вектора: " << str_vec.size() << std::endl;
std::cout << "Первый элемент: " << str_vec.at(0) << std::endl;
std::cout << "Последний элемент: " << str_vec.back() << std::endl;

В результате выполнения кода получим следующий вывод:


Размер вектора: 3
Первый элемент: первый элемент
Последний элемент: третий элемент

Как видно из примера, вектор создается с использованием шаблонов, где указывается тип элемента в векторе (в данном случае std::string). Метод push_back добавляет новый элемент в конец вектора. Метод size() возвращает текущий размер вектора. Метод at() возвращает элемент по индексу, где 0 – это первый элемент. Метод back() возвращает последний элемент вектора.

Также возможно использование вектора для хранения элементов произвольных типов данных. Например:

c++
#include 
struct Person {
    std::string name;
    int age;
};
std::vector people_vec;
people_vec.push_back({"Иван", 23});
people_vec.push_back({"Ольга", 30});
people_vec.push_back({"Петр", 45});
std::cout << "Размер вектора: " << people_vec.size() << std::endl;
std::cout << "Имя первого элемента: " << people_vec.at(0).name << std::endl;
std::cout << "Возраст второго элемента: " << people_vec.at(1).age << std::endl;
std::cout << "Имя последнего элемента: " << people_vec.back().name << std::endl;

Результат выполнения кода будет следующим:


Размер вектора: 3
Имя первого элемента: Иван
Возраст второго элемента: 30
Имя последнего элемента: Петр

В данном случае вектор хранит элементы типа Person, который определен как структура с двумя полями: строковым name и целочисленным age. Оператор {} позволяет инициализировать поля структуры в момент добавления нового элемента в вектор.

Также vector поддерживает итераторы для обхода элементов вектора.

c++
#include 
std::vector vec = {1, 2, 3, 4, 5};
std::vector::iterator it;
for (it = vec.begin(); it != vec.end(); ++it) {
    std::cout << *it << " ";
}

В данном примере vec – вектор из пяти целочисленных значений. Итератор vec.begin() возвращает итератор на первый элемент вектора, а vec.end() возвращает итератор на элемент, следующий за последним элементом вектора. Значения итератора увеличиваются в цикле с помощью оператора ++it. Оператор *it извлекает соответствующее значение элемента вектора.

Также векторы поддерживают многие другие методы, такие как erase(), insert(), resize() и др. Они позволяют изменять размер и содержимое вектора по мере необходимости и существенно облегчают работу с данными в программировании на C++.

Похожие вопросы на: "c vector "

Отзеркалить текст онлайн
Python Disable Path Length Limit - Избавьтесь от ограничений длины пути
Pygame Surface: The Ultimate Solution for Graphics and Game Development
<h1>ManyToManyField в Django: примеры использования и настройка модели
<h1>PHP Array Values
CDR to JPG - Online Converter
<str> isalpha: проверка наличия только букв
Официальный сайт Xbox Live
Шифр Цезаря: простой и эффективный способ шифрования
Crash Dump: что это такое и как исправить