如何将列表中的元素复制到数组 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++的主要内容,如果未能解决你的问题,请参考以下文章