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 "

Функция strcmp в Си: сравнение строк
Python Invalid Syntax: Common Errors and How to Fix Them
C EOF: Значение, использование и примеры кода - урок для начинающих
Java Singleton: Описание, Плюсы, Минусы
Int Long C – Использование типов данных в языке программирования C
Child Last: Making Sure No Child is Left Behind
How to Fix Undefined Reference to C Errors: Expert Tips and Strategies
Как интегрировать GitHub и Telegram для более эффективной работы
Прозрачный цвет CSS
<h1>Server Time: The Ultimate Timekeeping Solution