Вектор в 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;
}
Результат работы программы:
Методы класса vector
Для добавления нового элемента в конец вектора используется метод push_back()
. Количество элементов определяется методом size()
. Для доступа к элементам вектора можно использовать квадратные скобки []
, также, как и для обычных массивов.
pop_back()
— удалить последний элементclear()
— удалить все элементы вектораempty()
— проверить вектор на пустоту
Подробное описание всех методов std::vector
(на английском) есть на C++ Reference.
Следующий урок: Наследование классов C++ →.
Комментарии к статье: 81
Возможность комментировать эту статью отключена автором. Возможно, во всем виновата её провокационная тематика или большое обилие флейма от предыдущих комментаторов.
Если у вас есть вопросы по содержанию статьи, рекомендуем вам обратиться за помощью на наш форум.