📜  C++ STL-list.Assign()函数(1)

📅  最后修改于: 2023-12-03 15:13:55.515000             🧑  作者: Mango

C++ STL list.Assign() 函数

简介

std::list 是 C++ STL(标准模板库)中的一个容器,它是一个双向链表,可以在 O(1) 的时间复杂度下在任意位置插入或删除元素。在 std::list 中,Assign() 函数用于给容器赋值。

函数原型
void assign (size_type n, const value_type& val);
template <class InputIterator>
void assign (InputIterator first, InputIterator last);
  • n:要赋予 list 的元素个数。
  • val :要赋给 list 的元素值。
  • first :范围的开始迭代器。
  • last :范围的结束迭代器。
函数功能

Assign() 函数用于重置 list 的元素。它接受一个元素值或一个范围,并用它们替换现有的元素。如果新元素数量大于原来的元素数量,则新元素会被添加到列表的末尾。

代码示例
#include <iostream>
#include <list>

int main() {
  std::list<int> mylist;

  // 设置所有元素为 8
  mylist.assign(5, 8);

  // 打印我的列表中的元素
  std::cout << "mylist contains:";
  for (auto it = mylist.begin(); it != mylist.end(); ++it)
    std::cout << ' ' << *it;
  std::cout << '\n';

  // 使用提供的指针数组重置元素
  int myints[] = { 1776, 7, 4 };
  mylist.assign(myints, myints + 3);

  // 打印我的列表中的元素
  std::cout << "mylist contains:";
  for (auto it = mylist.begin(); it != mylist.end(); ++it)
    std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}
输出
mylist contains: 8 8 8 8 8
mylist contains: 1776 7 4

这个示例用 Assign() 函数将 list 中的所有元素设置为 8,然后使用一个指针数组将它们重置为 1776、7 和 4。最后输出 list 中的每个元素。

总结

std::listAssign() 函数是一种将新值赋给列表的常用方法。它可以通过单个值或范围来实现,使得列表重新赋值变得异常简单。这个函数非常实用,可以让你在 C++ STL 中轻松地进行列表管理。