Распечатать вектор C++

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

В этом мы обсудим различные методы и приемы печати вектора в C++.

Что такое Vector?

В C++ вектор относится к переменной, используемой для хранения нескольких значений одного и того же типа. Думайте о векторе как о реализации массива.

Однако, в отличие от массива, вектор является динамическим и может увеличиваться или уменьшаться в размере в зависимости от наших требований.

Создать вектор С++

В C++ векторы определяются в файле заголовка вектора, входящем в состав стандартной библиотеки C++.

Чтобы использовать векторы в C++, нам нужно включить заголовочный файл, как показано ниже:

#include <vector>

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

std::vector<T> vector_name

Параметр T в приведенном выше синтаксисе относится к любому примитивному типу данных C++.

Например, чтобы объявить вектор int, мы можем сделать:

#include <iostream>

#include <vector>

int main() {

std::vector<int> my_vector = {1,2,3,4,5};

}

В приведенном выше примере мы объявляем вектор с именем my_vector типа int. Он содержит элементы, определенные внутри фигурных скобок.

Доступ к векторным элементам C++

В C++ мы можем получить доступ к элементам вектора, используя метод at(). Функция позволяет нам указать индекс и получить значение по этому индексу.

Рассмотрим пример ниже:

#include <iostream>

#include <vector>

int main() {

std::vector<int> my_vector = {1,2,3,4,5};

std::cout << my_vector.at(1) << std::endl;

}

В приведенном выше примере кода мы используем функцию at() для доступа к элементу с индексом 1 вектора my_vector.

Если мы скомпилируем и запустим приведенный выше код, мы должны увидеть вывод, как показано ниже:

$ g++ vect.cpp

$ ./a.out

2

Печать вектора — для цикла С++

Мы можем перебирать индекс каждого вектора, используя функцию at() и цикл for, и возвращать соответствующий элемент.

Читайте также:  Скачать файл по HTTP в Python

Возьмите иллюстрацию, показанную ниже:

#include <iostream>

#include <vector>

intmain() {
std::vectormy_vector = {1,2,3,4,5};
for (inti = 0; i<my_vector.size(); i++) {
std::cout<< my_vector.at(i) <<std::endl;
}
}

В приведенном выше примере мы используем функцию size() для получения размера вектора. Это не позволяет нам вручную угадывать размер вектора и получать доступ к элементам за пределами границ.

Затем мы используем каждый индекс вектора в функции at(), чтобы получить соответствующий элемент.

Приведенный выше код должен вернуть:

$ g++ vect.cpp

$ ./a.out

1

2

3

4

5

Вместо функции at() вы можете использовать векторную индексацию, как показано ниже:

#include <iostream>

#include <vector>

int main() {

std::vectormy_vector = {1,2,3,4,5};
for (inti = 0; i<my_vector.size(); i++) {
std::cout<<my_vector[i] <<std::endl;
}
}

В приведенном выше примере используется нотация индексации [] для доступа к элементу по указанному индексу.

Вектор печати С++ — For_each

Другой стандартный метод печати вектора — использовать итератор, предоставленный в методе for_each. Это предусмотрено в библиотеке алгоритмов.

Пример кода показан ниже:

#include <iostream>

#include <vector>

#include <algorithm>

int main() {

std::vectormy_vector = {1,2,3,4,5};
for_each(my_vector.begin(), my_vector.end(), [](constint& n) {
std::cout<< n <<std::endl;
});
}

Метод for_each позволяет нам применять функцию к каждому элементу вектора для определенного диапазона. В данном случае от начала до конца вектора.

Вектор печати С++ — std::copy()

Мы также можем использовать метод std::copy() из библиотеки алгоритмов, чтобы скопировать элементы вектора в стандартный вывод.

Иллюстрация показана ниже:

#include <iostream>

#include <vector>

#include <algorithm>

#include <iterator>

intmain() {
std::vectormy_vector = {1,2,3,4,5};
copy(my_vector.begin(), my_vector.end(), std::ostream_iterator(std::cout, » «));
}

Вектор печати C++ — Overload std::ostream::operator<<

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

Читайте также:  Перегрузка в C++: функции, оператора

Возьмите иллюстрацию примера ниже:

#include <iostream>

#include <vector>

#include <algorithm>

#include <iterator>

std::ostream&operator<< (std::ostream& out, conststd::vector&vec) {
for (size_ti = 0; i<vec.size(); i++) {
out <<vec[i];
if (!vec.empty())
out <<» «;
}
out <<«»;
return out;
}
intmain() {
std::vectormy_vector = {1,2,3,4,5};
std::cout<<my_vector;
}

Если мы скомпилируем и запустим приведенный выше код, он должен вернуть элементы массива, как показано ниже:

$ g++ vect.cpp

$ ./a.out

1 2 3 4 5

Заключение

В этой статье мы обсудили несколько методов печати вектора в C++.

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