Skip to content

О Vector в C++

В стандартной библиотеке C++ существует множество контейнеров, предоставляющих различные структуры данных для эффективного хранения и управления данными. Один из наиболее популярных и полезных контейнеров - это std::vector.

Введение в Vector

std::vector представляет собой динамический массив, который автоматически расширяется при добавлении новых элементов. Это обеспечивает гибкость использования и эффективность в управлении памятью. Вот простой пример его использования:

cpp
#include <vector>
#include <iostream>

int main() {
    std::vector<int> numbers;

    // Добавление элементов
    numbers.push_back(1);
    numbers.push_back(2);
    numbers.push_back(3);

    // Обход элементов
    for (const auto& num : numbers) {
        std::cout << num << " ";
    }

    return 0;
}

Основные операции с Vector

  • Добавление элементов: push_back() используется для добавления элемента в конец вектора.
  • Доступ к элементам: at(), [] или front()/back() позволяют получить доступ к элементам вектора.
  • Изменение размера: resize() позволяет изменять размер вектора.

Преимущества использования std::vector включают автоматическое управление памятью, константное время доступа к элементам по индексу и простоту использования.

Пример использования Vector в реальном коде

Давайте рассмотрим пример использования std::vector для хранения пользовательских объектов:

cpp
#include <vector>
#include <iostream>

class Person {
public:
    std::string name;
    int age;

    Person(const std::string& n, int a) : name(n), age(a) {}
};

int main() {
    std::vector<Person> people;
    people.push_back(Person("Alice", 25));
    people.push_back(Person("Bob", 30));

    for (const auto& person : people) {
        std::cout << "Name: " << person.name << ", Age: " << person.age << std::endl;
    }

    return 0;
}

Заключение

std::vector в С++ - это мощный и удобный контейнер, предоставляющий динамический массив с широкими возможностями. Это незаменимый инструмент при работе с коллекциями данных в различных задачах программирования.

Содержание доступно по лицензии MIT