21xrx.com
2024-12-22 16:33:39 Sunday
登录
文章检索 我的文章 写文章
C++ 中如何将 vector 转换为 list
2023-07-13 06:17:20 深夜i     --     --
C++ vector list 转换

在 C++ 中,vector 和 list 都是 STL 中常用的容器。虽然它们都可以存储一组元素,但是在某些情况下,我们需要将一个容器转换为另一个容器。本文将介绍如何将 vector 转换为 list。

将 vector 转换为 list 的最简单的方法是使用构造函数。list 容器有一个接受迭代器范围的构造函数,因此我们可以将 vector 的 begin() 和 end() 迭代器传递给 list 的构造函数。代码如下:


#include <iostream>

#include <vector>

#include <list>

using namespace std;

int main() {

  vector<int> vec 4;

  list<int> lst(vec.begin(), vec.end());

  for (auto& i : lst)

    cout << i << " ";

  

  cout << endl;

  return 0;

}

以上代码首先定义了一个 vector 容器 vec,并将一些元素添加到其中。然后,使用 vector 的 begin() 和 end() 迭代器创建了一个 list 容器 lst,并将其初始化为 vec 的元素。最后,我们遍历了 lst 容器的所有元素并将它们输出到控制台。

此外,我们也可以使用 list 容器的 assign 方法将其初始化为另一个容器。代码如下:


#include <iostream>

#include <vector>

#include <list>

using namespace std;

int main() {

  vector<int> vec 5;

  list<int> lst;

  lst.assign(vec.begin(), vec.end());

  for (auto& i : lst)

    cout << i << " ";

  

  cout << endl;

  return 0;

}

以上代码定义了一个空的 list 容器 lst,并使用其 assign 方法将其初始化为 vec 的元素。这样做相当于使用构造函数,只不过我们需要首先定义一个空的 lst 容器。同样,我们遍历了 lst 容器的所有元素并将它们输出到控制台。

需要注意的是,在将 vector 转换为 list 的过程中,由于两个容器的实现方式不同,可能会导致性能损失。因此,在实际应用中,我们需要谨慎使用这种转换方式,并在必要时进行优化。

总之,使用 list 的构造函数或 assign 方法可以方便地将 vector 转换为 list。这种转换方式在某些情况下非常有用,特别是当我们需要在 vector 和 list 之间进行数据交换时。

  
  

评论区

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