array :: fill () и array :: swap () в C ++ STL

Опубликовано: 31 Декабря, 2021


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

массив :: fill ()

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

Синтаксис:

имя-массива .fill ( значение )
Параметры:
Значение, устанавливаемое для всех элементов
контейнер передается как параметр.
Результат :
Все элементы контейнера
устанавливается равным переданному параметру.

Примеры:

Ввод: myarray = {1, 2, 3, 4}
         myarray.fill (5);
Вывод: myarray = {5, 5, 5, 5}

Ввод: myarray = {1, 2, 3, 4, 5, 6, 7}
         myarray.fill (2);
Выход: myarray = {2, 2, 2, 2, 2, 2, 2}

Ошибки и исключения

1. Выдает ошибку, если операция присваивания вызывает некоторую ошибку.
2. В противном случае он имеет базовую гарантию отсутствия исключения.

// CPP program to illustrate
// Implementation of fill() function
#include <array>
#include <iostream>
using namespace std;
int main()
{
// array container declaration
array< int , 4> myarray{ 1, 2, 3, 4 };
// Using fill() function to
myarray.fill(5);
// printing the array
for ( auto it=myarray.begin(); it<myarray.end(); ++it)
cout<<*it<< " " ;
return 0;
}

Выход:

5 5 5 5
массив :: своп ()

Эта функция используется для замены содержимого одного массива другим массивом того же типа и размера.

Синтаксис:

имя-массива1 .swap (имя- массива2 )
Параметры:
Имя массива, с которым
содержимое необходимо поменять местами.
Результат :
Все элементы массива 2 меняются местами.

Примеры:

Ввод: myarray1 = {1, 2, 3, 4}
         myarray2 = {3, 5, 7, 9}
         myarray1.swap (myarray2);
Выход: myarray1 = {3, 5, 7, 9}
         myarray2 = {1, 2, 3, 4}

Ввод: myarray1 = {1, 3, 5, 7}
         myarray2 = {2, 4, 6, 8}
         myarray1.swap (myarray2);
Выход: myarray1 = {2, 4, 6, 8}
         myarray2 = {1, 3, 5, 7}

Ошибки и исключения

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

// CPP program to illustrate
// Implementation of swap() function
#include <array>
#include <iostream>
using namespace std;
int main()
{
// array container declaration
array< int , 4> myarray1{ 1, 2, 3, 4 };
array< int , 4> myarray2{ 3, 5, 7, 9 };
// using swap() function to swap elements of arrays
myarray1.swap(myarray2);
// printing the first array
cout<< "myarray1 = " ;
for ( auto it=myarray1.begin(); it<myarray1.end(); ++it)
cout<<*it<< " " ;
// printing the second array
cout<<endl<< "myarray2 = " ;
for ( auto it=myarray2.begin(); it<myarray2.end(); ++it)
cout<<*it<< " " ;
return 0;
}

Выход:

myarray1 = 3 5 7 9 
myarray2 = 1 2 3 4 
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
C++