21xrx.com
2024-11-22 11:17:30 Friday
登录
文章检索 我的文章 写文章
C++ 中 list 的赋值操作
2023-06-23 07:40:32 深夜i     --     --
list C++ 赋值操作

C++ 中 list 是一种 STL (标准模板库) 中的容器类型,可以用来存储一组元素,并支持快速的插入和删除操作。在使用 list 时,有时需要进行赋值操作,即将一个 list 的值赋给另一个 list。本文将介绍 C++ 中 list 的赋值操作。

C++ 中 list 支持以下几种赋值操作:

1. 使用 operator=() 函数进行赋值操作

使用 operator=() 函数可以将一个 list 的值赋给另一个 list。该函数的语法如下:


list1 = list2;

其中,list1 和 list2 都是 list 对象,其中 list2 中的所有元素都会被赋给 list1。该操作具有 O(N) 的时间复杂度,其中 N 是 list2 中的元素个数。

例如,下面的代码演示了使用 operator=() 函数进行赋值操作:


#include <iostream>

#include <list>

using namespace std;

int main() {

  list<int> list1 = 2;

  list<int> list2 = 5;

  list1 = list2;

  for (auto it = list1.begin(); it != list1.end(); ++it) {

    cout << *it << " ";

  }

  cout << endl;

  return 0;

}

输出:


4 5 6

2. 使用 assign() 函数进行赋值操作

除了使用 operator=() 函数进行赋值操作外,还可以使用 assign() 函数进行赋值操作。该函数的语法如下:


list1.assign(list2.begin(), list2.end());

其中,list1 和 list2 都是 list 对象,list2.begin() 和 list2.end() 分别表示 list2 的开始迭代器和结束迭代器。该操作具有 O(N) 的时间复杂度,其中 N 是 list2 中的元素个数。

例如,下面的代码演示了使用 assign() 函数进行赋值操作:


#include <iostream>

#include <list>

using namespace std;

int main() {

  list<int> list1 = 3;

  list<int> list2 = 4;

  list1.assign(list2.begin(), list2.end());

  for (auto it = list1.begin(); it != list1.end(); ++it) {

    cout << *it << " ";

  }

  cout << endl;

  return 0;

}

输出:


4 5 6

3. 使用 assign() 函数进行重复赋值操作

除了将另一个 list 的值赋给当前的 list 外,还可以使用 assign() 函数进行重复赋值操作。该函数的语法如下:


list1.assign(n, value);

其中,list1 是需要进行赋值操作的 list 对象,n 表示需要重复的次数,value 表示需要重复的元素值。该操作具有 O(N) 的时间复杂度,其中 N 是需要重复的次数。

例如,下面的代码演示了使用 assign() 函数进行重复赋值操作:


#include <iostream>

#include <list>

using namespace std;

int main() {

  list<int> list1 = 1;

  list1.assign(5, 4);

  for (auto it = list1.begin(); it != list1.end(); ++it) {

    cout << *it << " ";

  }

  cout << endl;

  return 0;

}

输出:


4 4 4 4 4

以上就是 C++ 中 list 的赋值操作。需要注意的是,在进行赋值操作时,如果当前 list 中已经存在元素,那么旧的元素将被删除,并被新的元素替换。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复