📜  C++ STL中的forward_list Assign()函数

📅  最后修改于: 2021-05-30 03:31:29             🧑  作者: Mango

forward_list :: assign()是C++ STL中的一个函数,它将新内容分配给转发列表,替换其当前内容并根据需要调整其大小。

句法:

Version 1:forward_list_name.assign(iterator it1, iterator it2)
Version 2:forward_list_name.assign(int n, val)
Version 3:forward_list_name.assign(initializer_list li)

参数:该函数接受不同版本的不同参数,下面将进行讨论:

  • 迭代器:第一个版本采用两个迭代器作为参数。从[it1,it2)范围内的每个元素构造新元素,即它包括it1和it2之间的所有元素,包括由it1取消引用的元素,但不包括由it2指向的元素。
  • n和val:在第二个版本中,将创建n个元素,并使用值val初始化每个元素。
  • Ininitializer_list:在第三个版本中,将创建新内容,并以相同的顺序使用作为初始化程序列表传递的值的副本进行初始化。

返回值此函数不返回任何值。

以下程序说明了函数forward_list :: assign的三个版本:

程序1:

// CPP code to illustrate the
// forward_list::assign() function
  
#include 
#include 
using namespace std;
  
int main()
{
    forward_list sample1;
    forward_list sample2;
  
    // Create n elements in
    // sample1 and initialize all
    // Of them with 3
    sample1.assign(5, 3);
  
    // Initilize sample2 with elements in
    // the range [sample1.begin(), sample1.end)
    sample2.assign(sample1.begin(), sample1.end());
  
    // Display sample1
    cout << "sample1: ";
    for (int& x : sample1)
        cout << x << " ";
  
    cout << endl;
  
    // Display sample2
    cout << "sample2: ";
    for (int& x : sample2)
        cout << x << " ";
}
输出:
sample1: 3 3 3 3 3 
sample2: 3 3 3 3 3

程式2:

// CPP code to illustrate the
// forward_list::assign() function
  
#include 
#include 
using namespace std;
  
int main()
{
    forward_list sample;
  
    // Initialize sample with an
    // Initialization list
    sample.assign({ 4, 5, 7, 8, 9, 45 });
  
    // Display sample
    cout << "sample: ";
    for (int& x : sample)
        cout << x << " ";
}
输出:
sample: 4 5 7 8 9 45
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”