Рубрики

функции fill () и fill_n () в C ++ STL

После объявления вектора все его значения инициализируются нулями. Ниже приведен пример кода, демонстрирующий то же самое.

// C ++ программа для отображения инициализации по умолчанию
// вектора vect []
#include<bits/stdc++.h>

using namespace std;

  

int main() 

{

    // Создание вектора размером 8

    vector<int> vect(8);  

  

    // Печать значений по умолчанию

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

       cout << ' ' << vect[i];

}

Выход :

0 0 0 0 0 0 0 0

Что если мы хотим инициализировать вектор конкретным значением, скажем, 1? Для этого мы можем передать значение вместе с размером вектора.

// C ++ программа для отображения указанной инициализации
// вектора vect []
#include<bits/stdc++.h>

using namespace std;

  

int main () 

{

    // Создаем вектор размером 8 со всеми начальными

    // значения как 1.

    vector<int> vect(8, 1);  

  

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

       cout << ' ' << vect[i];

}

Выход :

1 1 1 1 1 1 1 1

Что, если мы хотим инициализировать первые 4 значения, чтобы сказать 100, а остальные 6 значений как 200?
Один из способов сделать это — вручную указать значение для каждой позиции в векторе. Другими методами, предусмотренными в STL, стандартной библиотеке шаблонов, являются fill и fill_n.

  • заполнить ()
    Функция «fill» присваивает значение «val» всем элементам в диапазоне [begin, end), где «begin» — начальная позиция, а «end» — последняя позиция.

    ПРИМЕЧАНИЕ. Обратите внимание, что «начало» включено в диапазон, но «конец» НЕ включено. Ниже приведен пример для демонстрации «заполнения»:

    // C ++ программа для демонстрации работы fill ()
    #include <bits/stdc++.h>

    using namespace std;

      

    int main ()

    {

      vector<int> vect(8);

      

      // вызываем заполнение для инициализации значений в

      // диапазон до 4

      fill(vect.begin() + 2, vect.end() - 1, 4);

      

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

        cout << vect[i] << " ";

      

      return 0;

    }

    Выход :

    0 0 4 4 4 4 4 0
    
  • fill_n ()
    В fill_n () мы указываем начальную позицию, количество элементов для заполнения и значения для заполнения. Следующий код демонстрирует использование fill_n.

    // C ++ программа для демонстрации работы fil_n ()
    #include <bits/stdc++.h>

    using namespace std;

      

    int main()

    {

        vector<int> vect(8);  

      

        // вызываем заполнение для инициализации первых четырех значений

        // до 7

        fill_n(vect.begin(), 4, 7);

      

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

            cout << ' ' << vect[i];

        cout << '\n';

      

        // вызываем fill для инициализации 3 элементов из

        // "begin () + 3" со значением 4

        fill_n(vect.begin() + 3, 3, 4);

      

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

            cout << ' ' << vect[i];

        cout << '\n';

      

        return 0;

    }

    Выход :

     7 7 7 7 0 0 0 0
     7 7 7 4 4 4 0 0
    

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

функции fill () и fill_n () в C ++ STL

0.00 (0%) 0 votes