Копировать вектор С++

Как преобразовать строку в int в C++ Программирование и разработка

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

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

Копирование вектора подразумевает создание нового вектора, который имеет копию всех компонентов исходного вектора в том же порядке.

Пример 1. Метод Std::Copy для копирования вектора в C++

std::copy — это встроенная функция для копирования элементов одного вектора в другой. Однако убедитесь, что в целевом векторе достаточно места для хранения всех компонентов исходной последовательности.

В программе есть шапка с нужными файлами. Во-первых, у нас есть файл iostream; затем у нас есть векторный файл, стандартный файл встроенной библиотеки в C++. Через эту библиотеку мы можем использовать векторы в программе. Далее у нас есть заголовочный файл алгоритма копирования элементов векторов. Мы также включили в программу файл итератора, который позволяет нам получать доступ к элементам в векторах.

Теперь у нас есть основная функция, в которой мы объявили переменную как «vec1» векторного типа и инициализировали ее массивом целых чисел. Затем мы объявили другую переменную векторного типа как «vec2». Затем вызывается функция копирования, которая копирует все элементы «vec1» в «vec2». Функция begin() принимает первый итератор вектора, функция end() принимает последний итератор вектора, а здесь back_insertor вставляет элементы с конца.

Затем у нас есть условие цикла for, которое выполняет цикл по каждому элементу, хранящемуся в «vec1», и печатает элементы. То же самое и с элементами «vec2»; он также повторяет цикл цикла for и печатает на экране подсказки.

#include<iostream>

#include<vector>

#include<algorithm>

#include<iterator>

using namespace std;

int main() {

vector<int> vec1{ 3, 6, 6, 11 };

vector<int> vec2;

copy(vec1.begin(), vec1.end(), back_inserter(vec2));

cout << «Elements of Vector1 : «;

for (int v=; v<vec1.size(); v++)

cout << vec1[v] << » «;

cout << endl;

cout << «Elements of Vector2 : «;

for (int v=; v<vec2.size(); v++)

cout << vec2[v] << » «;

cout<< endl;

return ;

}

Выходные данные приведенной выше программы демонстрируют, что вектор был скопирован в другой вектор.

Читайте также:  Как создать MVP с помощью React и Firebase

Выходные данные приведенной выше программы демонстрируют

Пример 2: Метод Assign() для копирования вектора в C++

Другой альтернативой является использование открытого метода класса вектора assign(), который заменяет элементы вектора элементами из заданного диапазона.

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

Следующим шагом является вызов основной функции, в которой реализована программа для выполнения. Во-первых, мы определили переменную векторного типа «a», которая хранит целые числа в шаблоне массива. Затем у нас есть еще одна переменная, «b», тоже векторного типа.

После определения переменной мы использовали метод assign(), который возвращает итератор, указывающий на первый и последний вектор «a». Метод assign копирует элементы вектора «a» в элементы вектора «b». Теперь цикл for используется для перебора элементов вектора «a» и печати элементов вектора «a». Цикл for также используется для итерации элементов вектора «b» и отображает эти элементы с помощью команды cout.

#include<iostream>

#include<vector>

#include<algorithm>

#include<iterator>

using namespace std;

int main() {

vector<int> a{3, 5, 7, 9 ,11};

vector<int> b;

b.assign(a.begin(), a.end());

cout << «Elements of vector : «;

for (int i=; i<a.size(); i++)

cout << a[i] << » «;

cout << endl;

cout << «Elements of new vector : «;

for (int i=; i<b.size(); i++)

cout << b[i] << » «;

cout<< endl;

return ;

}

Вектор копируется в другой вектор. Следовательно, мы также можем использовать функцию assign в C++ для копирования элементов вектора в другие элементы вектора.

Следовательно, мы также можем использовать функцию assign

Пример 3. Метод оператора присваивания для копирования вектора в C++

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

На первом этапе основные файлы были включены в раздел заголовка, необходимый для этой программы. Кроме того, у нас есть файл пространства имен std для использования его функций в программе. Затем у нас есть основная функция, в которой мы объявили две переменные, «вектор1» и «вектор2» векторного типа. Только «vector1» инициализируется целочисленным массивом.

Теперь у нас есть оператор присваивания (=), который копирует элементы «vector1» в элементы «vector2», просто помещая оператор «=» между «vector1» и «vector2». Цикл for используется для итерации по обоим заданным векторам соответственно и печатает элементы, присутствующие в указанных векторах, через объект cout.

#include<iostream>

#include<vector>

#include<algorithm>

#include<iterator>

using namespace std;

int main() {

vector<int> vector1{ ,2 ,4 ,6 ,8};

vector<int> vector2;

vector2 = vector1 ;

cout << «vector1 elements : «;

for (int i=; i<vector1.size(); i++)

cout << vector1[i] << » «;

cout << endl;

cout << «vector2 elements : «;

for (int i=; i<vector2.size(); i++)

cout << vector2[i] << » «;

cout<< endl;

return ;

}

Элементы vector1 копируются в элементы vector2, как показано на следующем экране подсказки.

Читайте также:  Как изучить Pandas

Элементы vector1 копируются в элементы vector2

Пример 4. Метод конструктора для копирования вектора в C++

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

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

Через метод конструктора элементы вектора «p» копируются в вектор «q». Цикл for используется для обоих векторов «p» и «q» и будет напечатан на экране подсказки Ubuntu.

#include<iostream>

#include<vector>

#include<algorithm>

#include<iterator>

using namespace std;

int main() {

vector<int> p{1996 ,1997 ,1998, 1999};

vector<int> q(p);

cout << «Elements of old vector : «;

for (int i=; i<p.size(); i++)

cout << p[i] << » «;

cout << endl;

cout << «Elements of new vector: «;

for (int i=; i<q.size(); i++)

cout << q[i] << » «;

cout<< endl;

return ;

}

Следовательно, элементы копируются из старого вектора «p» в новый вектор «q» на следующем экране.

Следовательно, элементы копируются из старого вектора

Заключение

Мы узнали о многих методах копирования вектора в новый вектор. Мы использовали четыре разных подхода для копирования векторов в C++. Эти подходы включали метод std::copy, метод assign, метод оператора присваивания и передачу исходного вектора в качестве конструктора. С проверенными результатами этих методов, используемых в программе, мы скопировали элементы существующих векторных элементов во вновь сформированный вектор на языке программирования c++.

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

Adblock
detector