Векторы в C++ — урок 12

38 комментариев

Вектор в C++ — это замена стандартному динамическому массиву, память для которого выделяется вручную, с помощью оператора new.

Разработчики языка рекомендуют в использовать именно vector вместо ручного выделения памяти для массива. Это позволяет избежать утечек памяти и облегчает работу программисту.

Пример создания вектора

#include <iostream>
#include <vector>

int main()
{
    // Вектор из 10 элементов типа int
    std::vector<int> v1(10);

    // Вектор из элементов типа float
    // С неопределенным размером
    std::vector<float> v2;

    // Вектор, состоящий из 10 элементов типа int
    // По умолчанию все элементы заполняются нулями
    std::vector<int> v3(10, 0);

    return 0;
}

Управление элементами вектора

Создадим вектор, в котором будет содержаться произвольное количество фамилий студентов.

#include <iostream>
#include <vector>
#include <string>

int main()
{
    // Поддержка кириллицы в консоли Windows
    setlocale(LC_ALL, "");

    // Создание вектора из строк
    std::vector<std::string> students;

    // Буфер для ввода фамилии студента
    std::string buffer = "";

    std::cout << "Вводите фамилии студентов. "
              << "По окончание ввода введите пустую строку" << std::endl;

    do {
        std::getline(std::cin, buffer);
        if (buffer.size() > 0) {
            // Добавление элемента в конец вектора
            students.push_back(buffer);
        }
    } while (buffer != "");


    // Сохраняем количество элементов вектора 
    unsigned int vector_size = students.size();

    // Вывод заполненного вектора на экран
    std::cout << "Ваш вектор." << std::endl;
    for (int i = 0; i < vector_size; i++) {
        std::cout << students[i] << std::endl; 
    }

    return 0;
}

Результат работы программы:

Работа с векторами в C++. Пример программы.

Методы класса vector

Для добавления нового элемента в конец вектора используется метод push_back(). Количество элементов определяется методом size(). Для доступа к элементам вектора можно использовать квадратные скобки [], также, как и для обычных массивов.

  • pop_back() — удалить последний элемент
  • clear() — удалить все элементы вектора
  • empty() — проверить вектор на пустоту

Подробное описание всех методов std::vector (на английском) есть на C++ Reference.

Следующий урок: →.

После регистрации реклама на сайте отображаться не будет.
Обсудите статью на форуме.

Комментарии к статье: 38

Подождите, загружаются комментарии...

Оставить комментарий

Если не хотите больше вводить капчу — создайте аккаунт.

Предпросмотр комментария

Ваш комментарий пуст.