Функция Vector Resize в C++ Основные Принципы и Примеры Использования

Программирование и разработка

Работа с динамическими массивами является важной частью программирования на языке C++. Когда необходимо адаптировать массив к новым требованиям, приходится изменять его размер, что позволяет оптимально использовать память и ресурсы. Процесс изменения размеров массивов связан с добавлением или удалением элементов, что дает возможность эффективно управлять данными.

Представьте себе ситуацию, когда ваш исходный массив нуждается в корректировке. Например, требуется увеличить его, чтобы вместить больше элементов, или уменьшить для экономии памяти. В таких случаях полезно знать, как правильно изменять размеры массивов в коде C++. В этом разделе мы рассмотрим, как это сделать с помощью встроенных возможностей языка.

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

Пример 1 уменьшить размер вектора

Сначала объявим и инициализируем исходный массив, затем уменьшим его размер, сохранив только первые несколько элементов. В результате появится обновленный массив с уменьшенным числом значений.

  1. Объявите и инициализируйте исходный массив с произвольными значениями:
  2. 
    std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    

    phpCopy code

  3. Допустим, мы хотим оставить только первые три элемента. Измените размер массива на 3:
  4. 
    numbers.resize(3);
    
  5. Выведите содержимое измененного массива:
  6. 
    for (int number : numbers) {
    std::cout << number << " ";
    }
    // Выходные данные: 1 2 3
    

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

Читайте также:  Исследование внутренних объектов компилятора и ассемблера от А до Я

Теперь рассмотрим шаги более подробно:

  • Шаг 1: Объявите массив и присвойте ему начальные значения. В этом примере используется массив с числами от 1 до 10.
  • Шаг 2: Уменьшите размер массива до нужного количества элементов, используя метод изменения размера.
  • Шаг 3: Выведите обновленный массив на экран, чтобы увидеть, какие элементы остались.

Пример 2 увеличить размер вектора

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

Рассмотрим следующий код:


#include <iostream>
#include <vector>
void print(const std::vector& v) {
for(int i : v) {
std::cout << i << " ";
}
std::cout << std::endl;
}
int main() {
// Инициализируем исходный массив с 3 значениями
std::vector v = {1, 2, 3};
std::cout << "Исходный массив: ";
print(v);
// Изменяем размер массива до 6 элементов
v.resize(6);
// Заполняем новые элементы значениями
v[3] = 4;
v[4] = 5;
v[5] = 6;
std::cout << "Массив после изменения размера: ";
print(v);
return 0;
}

В этом коде происходит следующее:

Шаг Описание
1 Создаем массив с тремя элементами: 1, 2 и 3.
2
3 Увеличиваем размер массива до шести элементов.
4 Заполняем новые позиции значениями 4, 5 и 6.
5

Пример 3 Измените размер вектора со значениями

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

Давайте рассмотрим пример кода, который демонстрирует изменение размера массива. Мы создадим массив, заполним его значениями и изменим его размер, добавляя новые элементы или сокращая существующие.


// Пример 3: Изменение размера массива со значениями
#include <iostream>
#include <vector>
int main() {
// Изначально объявляем массив с тремя значениями
std::vector<int> numbers = {1, 2, 3};
std::cout << "Изначальный размер: " << numbers.size() << std::endl;
std::cout << "Элементы: ";
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
// Увеличиваем размер массива до 5, добавляя значение 10
numbers.resize(5, 10);
std::cout << "Новый размер: " << numbers.size() << std::endl;
std::cout << "Элементы: ";
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
// Уменьшаем размер массива до 2
numbers.resize(2);
std::cout << "Окончательный размер: " << numbers.size() << std::endl;
std::cout << "Элементы: ";
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}

Заключение

Как видно из примера, мы можем легко манипулировать размером массива и его содержимым. Сначала мы объявили массив и заполнили его тремя значениями. Затем увеличили его длину до пяти элементов, добавив два новых значения. После этого уменьшили размер до двух элементов, сохранив только первые два. Такой подход позволяет эффективно управлять динамическими структурами данных в программе.

  • Изначальный размер: 3
  • Новый размер: 5
  • Окончательный размер: 2

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

Заключение

Рассмотрев различные примеры, мы увидели, как можно как увеличить, так и уменьшить размер контейнера. В процессе изменения размера важно учитывать исходные значения элементов, чтобы сохранить целостность данных. Использование ключевых слов, таких как return и declare, позволяет лучше контролировать выполнение кода и его выходные данные.

Например, если у вас есть массив с исходным размером 3, и вы хотите увеличить его до 5, добавляя новые значения по умолчанию, в результате появится массив большего размера. С другой стороны, уменьшение размера массива с 5 до 2 потребует удаления лишних элементов, чтобы избежать утечек памяти.

Действие Исходный размер Новый размер Результат
Увеличить 3 5 Новые элементы добавлены
Уменьшить 5 2 Лишние элементы удалены

Видео:

Vector resize(), empty(), shrink() to fit functions in STL C++ #44

Оцените статью
bestprogrammer.ru
Добавить комментарий