如何将列表中的元素复制到数组 c/c++

Posted

技术标签:

【中文标题】如何将列表中的元素复制到数组 c/c++【英文标题】:How can i copy elements in list to an array 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 - 你想知道一些有趣的事情吗?当您的粗鲁评论弹出时,我正要发送答案。如果这是您的感受,我会将与您打交道的乐趣留给其他人。 【参考方案1】:

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

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

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

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

【讨论】:

以上是关于如何将列表中的元素复制到数组 c/c++的主要内容,如果未能解决你的问题,请参考以下文章

如何将列表复制到数组

如何复制数组中不同次数的元素?

如何在不复制 C# 的情况下将结构数组元素提取到变量中?

C / C ++如何复制没有嵌套循环的多维char数组?

如何将一个列表的所有元素附加到另一个列表? [复制]

如何迭代地将 2 个列表中的元素应用到新函数中? [复制]