【问题标题】:How can i copy elements in list to an array c/c++如何将列表中的元素复制到数组 c/c++
【发布时间】:2018-04-22 12:16:57
【问题描述】:

我有一个类似的列表:

list <char>mylist

我给它一些元素

for (int i = 0; i < 10; i++)
{
    mylist.push_back(i);
}

我的问题是,如果有办法将这些元素从列表复制到像

这样的数组
char A[10];

静态数组 或

char *A= new char[10]; 

动态数组

【问题讨论】:

  • i 调用了 UB
  • 问题是用C++编程语言,所以请不要写这个C/C++或标记两种不同的编程语言同一时间.
  • 它还没有调用 UB,但是如果你尝试将列表中的所有元素复制到一个大小为 10 的数组中(因为有 11 个元素),它会这样做
  • @rsp,但数组还是空的。
  • @dinhvan2804 - 你想知道一些有趣的事情吗?当您的粗鲁评论弹出时,我正要发送答案。如果这是您的感受,我会将与您打交道的乐趣留给其他人。

标签: c++ list


【解决方案1】:

是否可以将这些元素从列表中复制到数组中

是的,有一种方法可以将对象从一个容器复制到另一个容器。您可以使用以下算法:

  • 获取输出容器的输出迭代器
  • 获取输入容器的第一个元素的输入迭代器
  • 当输入迭代器没有指向结尾时
    • 取消引用迭代器以获取对元素的引用
    • 取消引用输出迭代器,并复制分配元素
    • 增加两个迭代器

您不需要自己编写循环,因为标准库已经为您完成了:std::copy

【讨论】:

    猜你喜欢
    • 2012-01-13
    • 2012-11-06
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 2018-02-04
    • 2019-12-20
    • 2017-04-25
    • 1970-01-01
    相关资源
    最近更新 更多