C++使用STL列表,如何将现有列表复制到新列表中

Cta*_*tak 5 c++ stl linked-list list long-integer

现在我正在使用一个复制构造函数来获取一个名为 char 类型的 val 的列表,并且我需要获取传递到复制构造函数中的字符串 v 的所有元素并将它们放入 val 列表中。

Public:
LongInt(const string v);

Private:
list<char> val;
Run Code Online (Sandbox Code Playgroud)

因此,在 LongInt 类的公共部分中,我有一个复制构造函数,它接受 val 列表并将 v 字符串复制到其中。谁能帮我弄清楚如何做到这一点?提前致谢!

Tim*_*sch 5

您必须迭代字符串并逐字符提取数据。使用该std::copy算法应该有效:

std::copy(v.begin(), v.end(), std::back_inserter(val));
Run Code Online (Sandbox Code Playgroud)


Mar*_*k B 1

在你的LongInt构造函数中只需使用iterator, iterator list构造函数:

LongInt(const string v) : val(v.begin(), v.end()) { }

话虽如此,您是否考虑过实际使用string或可能deque<char>操纵您的序列而不是list?根据您的需求,这些替代方案可能会更好。