array :: fill () и array :: swap () в C ++ STL
Классы массивов обычно более эффективны, легки и надежны, чем массивы в стиле C. Введение класса массива из C ++ 11 предложило лучшую альтернативу массивам в стиле C.
Эта функция используется для установки общего значения для всех элементов контейнера массива.
Синтаксис:
имя-массива .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