当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ list assign()用法及代码示例


list::assign()是C++ STL中的内置函数,用于将值分配给列表。它也可以用于将元素从一个列表复制到另一个列表。

  1. 将元素分配给列表。
    用法:
    list_name.assign(count, value) 
    

    参数:此函数接受两个强制参数,如上面的语法所示,如下所述:


    • count:需要分配给名称为list_name的列表的值的数量。
    • value:从第一个元素开始,将为该值分配计数的次数。如果列表中已经包含一些元素,则这些元素将被参数值中指定的元素替换。此参数的数据类型必须与list_name的数据类型相同。

    返回值:此函数从列表list_name中的第一个元素开始分配在值参数计数中指定的元素次数。该函数的返回类型为void,并且不返回任何值。

    以下示例程序旨在说明list::assign()函数。

    // CPP program to illustrate the 
    // list::assign() function 
    #include <bits/stdc++.h> 
    using namespace std; 
      
    int main() 
    { 
        // Initialization of list 
        list<int> demo_list; 
      
        // Assigning the value 100, 5 times 
        // to the list, list_demo. 
        demo_list.assign(5, 100); 
      
        // Displaying the list 
        for (int itr : demo_list) { 
            cout << itr << " "; 
        } 
      
        return 0; 
    }
    输出:
    100 100 100 100 100
    
  2. 将元素从现有列表复制到新列表。
    用法
    first_list.assign(second_list.begin(), second_list.end());
    

    参数:此函数接受两个参数,如上面的语法所示。第一个参数是第二个列表的开始迭代器,第二个参数是第二个列表的结束迭代器。

    返回值:此函数将second_list复制到first_list。此函数不返回任何值。

    以下示例程序旨在说明list::assign()函数:

    // CPP program to illustrate the 
    // list::assign() function 
    #include <bits/stdc++.h> 
    using namespace std; 
      
    int main() 
    { 
        // Initialization of list 
        list<int> first_list; 
      
        // Initializing second list 
        list<int> second_list; 
      
        // Assigning the value 100, 5 times 
        // to the second_list. 
        second_list.assign(5, 100); 
      
        // Copying second_list to first_list 
        first_list.assign(second_list.begin(), 
                          second_list.end()); 
      
        for (int itr : first_list) { 
            cout << itr << " "; 
        } 
      
        return 0; 
    }
    输出:
    100 100 100 100 100
    

注:本文由纯净天空筛选整理自 list assign() function in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。