Как вывести вектор c
Перейти к содержимому

Как вывести вектор c

  • автор:

 

How to Print a Vector in C++

Adjacent memory is used to stock vector elements. Therefore, we have decided to write this article for those naïve users who don’t know how to display vectors on the shell using C++.

Let’s get started with the terminal shell opening via the shortcut “Ctrl+Alt+t”. You must have the Nano editor, and G++ compiler of C++ configured on your Linux system as we have been working on Ubuntu 20.04.

Before starting our examples, we will be creating a new simple C++ file and opening it with a nano editor. Both the commands are shown beneath.

Example 01: Using “For” Loop

Let’s get started with the first example of displaying or printing the vector data structure in the Ubuntu 20.04 shell while working in the C++ language. Start your code with the addition of some main headers of C++. The first one is standard “iostream” to utilize the input and output stream. The other header library must be “vector” to utilize the vector data structures in our code. The “std” namespace for the C++ language must be added to use the standard “cin” and “cout” statements in the script.

The main() function comes after the standard namespace. It started with initializing an integer type vector “v” taking 5 integer values in it. This vector is resizable. The cout standard clause is here to tell us that the vector will be displayed. The “for” loop is started from the 1st index of the vector up to its end using the “size” function.

The cout clause is utilizing the “at()” function to iterate the vector values using indexes i.e. “i” and print all values of the vector “v”.

using namespace std ;

vector < int > v = { 12 , 14 , 16 , 18 , 20 } ;

for ( int i = 0 ; i < v. size ( ) ; i ++ ) {

Save this code with “Ctrl+S” and quit this C++ file with “Ctrl+X” to come out of the editor. As we have returned to the shell, it’s time to utilize the “G++” compiler to compile our newly made code.

Use the file name along with the keyword “g++”. The compilation will be seen as successful if it doesn’t show any output. There comes the “./a.out” instruction of Ubuntu 20.04 to execute the compiled code.

Using both the commands in our Linux system leads us to the output showing the vector elements on the shell.

Example 02: Using For Loop with “each” Element

Let’s take a look at the new example to use the “for” loop in a different way. This time, we will be taking the same code with minor changes. The very first change we have been doing is at the vector initialization line.

We have changed the whole vector along with its type. We used the character type vector “v” with 5 character values, i.e., alphabets. The other change has been done to the “for” loop. We have initialized an “each” element as “e” taking the vector “v” as a source to get elements one after another.

Each element “e” will be displayed using the “cout” statement. After this “for” loop ends, we have given a line break, and the code is completed.

using namespace std ;

vector < char > v = { ‘a’ , ‘b’ , ‘c’ , ‘d’ , ‘e’ } ;

This code got compiled using the same “g++” compiler of Ubuntu 20.04 for C++. On running this compiled code on the shell, we have got the result as numbers. This implies that the “for” loop will always convert a string or character values of a vector to numbers before displaying.

Example 03:

Let’s see how the “while” loop will work on the vectors when used. Thus, we have been using the overall same code once again. The first change is initializing an integer “i” to 0. The same character-type vector is used.

Until the value “i” is less than the size of a vector, the cout statement within the “While” loop will continue to display the particular index value of the vector and increment “i” by 1. Let’s compile this code with g++ to see the results.

using namespace std ;

vector < char > v = { ‘a’ , ‘b’ , ‘c’ , ‘d’ , ‘e’ } ;

After running this code after compilation, we have seen that the character values of vector “v” are displayed using the “while” loop.

Example 04:

Let’s look at the last example to use the copy function and the iterator to display the contents/values of a vector. Firstly, to use the iterator and the copy() function, you must add the algorithm and iterator header after the iostream and vector library using “#include”.

The integer vector “v” is initialized and the copy() function is started with “begin()” and “end()” functions to take the start and end of the vector. The ostream_iterator is here to iterate the vector values and it is utilizing the “cout” statement to display all values.

using namespace std ;

vector < int > v = { 12 , 14 , 16 , 18 , 20 } ;

All the vector values have been displayed on the Ubuntu shell on execution and compilation.

Conclusion:

This was all about initializing and printing an iterator in C++ code using the Ubuntu 20.04 system. We have adopted a total of 4 different methods to get similar results, i.e., for loop, for each loop, while loop, copy function, and the iterator. You can make use of these examples in any of the C++ environments.

About the author

Kalsoom Bibi

Hello, I am a freelance writer and usually write for Linux and other technology related content

Как в С++ красиво вывести элементы vector в консоль / просто в поток?

Банальная задача, миллион раз реализованная, но всегда, на мой взгляд, как-то не очень красиво.
Есть некий контейнер, пара итераторов, просто массив или что-то еще подобное.
Надо вывести значения куда-то через разделитель , да так чтобы он был только между значениями.
Есть всякие варианты — с проверкой на то первый ли это элемент, или последний элемент. Даже такой экзотический видел, с забоем последней запятой:

How to Print a vector in C++?

In this article, we will discuss different ways to print all the elements of a vector in C++.

Table of Contents

Suppose we have a vector and we want to print all items of the vector on console. There are different ways to do this, let’s discuss them one by one,

Print a Vector in C++ by overloading << Operator

We can overload the << operator for a vector as a template function in global scope, to print the contents of the vector of any type.
It will iterate over all items of the vector and print them one by one. Let’s understand by examples,

Output:

We overloaded the << operator for vector and then used that to print the contents of vector.

C++: Print a vector in comma separated manner

If you want to provide a custom separator while printing contents of vector, then you can avoid overloading the << operator. Instead create a separate function to print the contents of a vector with custom separator. We have created a function print_vector(). It accepts two arguments: a vector and a separator string. Inside the print_vector() function, it iterates over all elements of vector and print them one by one separated by provided custom separator string. Let’s understand by example,

Read More:

We printed the contents of a vector of integer and then a vector of string using the template function print_vector().

Print a Vector in C++ using indexing

Unlike previous example, we can iterate over the contents of vector using indexing and print all elements in it one by one. For example,

Output

Print a Vector in C++ in one line without for loop

We can print all the items of a vector using a STL algorithm std::copy(). Using this API we can copy all the elements of a vector to the output stream. For example,

Output

Print a Vector in C++ in one line (Generic Solution)

In previous example, we specifically provided the type of elements in vector while calling the copy() algorithm. But using C++17 experimental::make_ostream_joiner, we can print all elements of a vector without specifying the type of elements in vector. For example,

Output

Print a Vector in C++ in one line using Lambda function

Using for_each(), we can apply a lambda function on each element of the vector. Inside the lambda function we can print its value.
Let’s understand with example,

Output

Here we iterated over all the elements of vector in a single line and printed them one by one.

Summary

We learned about six different ways to print a vector in C++. Thanks.

Related posts:

Advertisements

Thanks for reading.

Leave a Comment Cancel Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Advertisements

Advertisements

Advertisements

Advertisements

 

C++ – Smart Pointers

C++ Threads

C++ – STL Tutorials

Terms of Use

Disclaimer

Copyright © 2023 thisPointer

To provide the best experiences, we and our partners use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us and our partners to process personal data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.

Click below to consent to the above or make granular choices. Your choices will be applied to this site only. You can change your settings at any time, including withdrawing your consent, by using the toggles on the Cookie Policy, or by clicking on the manage consent button at the bottom of the screen.

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

Как преобразовать строку в int в C++

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

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

Что такое Vector?

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

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

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

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

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

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

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

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

В приведенном выше примере мы объявляем вектор с именем 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.

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

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

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

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

#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(), чтобы получить соответствующий элемент.

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

Вместо функции 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 и вектора.

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

#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 ;
>

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

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *