Добавление элементов
Часть раздела Логика и управление потоком путешествия по C++ на Coddy — урок 11 из 56.
Теперь, когда вы знаете, как создавать векторы, давайте научимся добавлять в них элементы после их создания. Метод push_back() — это ваш основной инструмент для расширения вектора путем добавления новых элементов в его конец.
Метод push_back() принимает один аргумент — значение, которое вы хотите добавить — и добавляет его в конец вектора:
std::vector<int> numbers;
numbers.push_back(10);
numbers.push_back(20);
numbers.push_back(30);В этом примере мы начинаем с пустого вектора и используем push_back() для добавления трех целых чисел. После этих операций наш вектор содержит элементы [10, 20, 30] в указанном порядке.
Преимущество push_back() заключается в том, что она автоматически управляет всей памятью. Когда вы добавляете элементы и у вектора заканчивается место, он автоматически выделяет больше памяти и копирует существующие элементы в новое место. Это делает векторы невероятно удобными для создания коллекций данных, когда вы заранее не знаете их окончательный размер.
Задание
ЛегкоСоздайте программу, которая демонстрирует добавление элементов в вектор с помощью метода push_back(). Вы начнете с пустого вектора и будете динамически заполнять его, добавляя числа в определенной последовательности.
Будут предоставлены следующие входные данные:
- Целое число
n, представляющее количество чисел, которые нужно добавить в вектор - Затем
nцелых чисел, которые должны быть добавлены в вектор одно за другим
Ваша программа должна:
- Создать пустой
std::vector<int>с именемnumbers - Использовать цикл для чтения каждого из
nвходных чисел - Для каждого числа использовать
push_back(), чтобы добавить его в конец вектора - После добавления каждого числа выводить текущий размер вектора и только что добавленное число
- В конце вывести все элементы вектора в одну строку, разделенные пробелами
Используйте следующий точный формат вывода:
Added [number], size is now [current size]
Added [number], size is now [current size]
...
Final vector: [num1] [num2] [num3] ...Используйте метод .size(), чтобы получить текущее количество элементов в векторе после каждого добавления. Для финального вывода используйте оператор квадратных скобок [] для доступа к каждому элементу по индексу.
Шпаргалка
Используйте push_back() для добавления элементов в конец вектора:
std::vector<int> numbers;
numbers.push_back(10);
numbers.push_back(20);
numbers.push_back(30);Метод push_back() автоматически управляет памятью, расширяя вектор по мере необходимости при добавлении элементов.
Попробуйте сами
#include <iostream>
#include <vector>
using namespace std;
int main() {
// Считать количество элементов для добавления
int n;
cin >> n;
// Создать пустой вектор
vector<int> numbers;
// TODO: Напишите свой код здесь
// Считать n чисел и добавить их в вектор с помощью push_back()
// Вывести требуемый результат после каждого добавления
// Вывести итоговый вектор
cout << "Final vector: ";
// TODO: Вывести все элементы, разделенные пробелами
return 0;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Указатели и память
Что такое указатель?Оператор взятия адресаОператор разыменованияНулевые указателиУказатели и массивыДинамическая память и 'new'Освобождение памяти и 'delete'Итоги: Практика с указателями2Векторы (динамические массивы)
Знакомство с std::vectorСоздание вектораДобавление элементовДоступ к элементамРазмер вектораИтерация с помощью цикла ForRange-based цикл ForУдаление элементовИтоги: операции с векторами5Проект: Инструмент инвентаризации
Настройка проектаДобавление и обновление товаров