gpt4 book ai didi

c++ - copy() 在列表的开头而不是结尾插入元素

转载 作者:行者123 更新时间:2023-11-28 00:30:38 30 4
gpt4 key购买 nike

我有以下示例程序:

10 int main()
11 {
12 list<int> firstlist, secondlist;
13 list<int>::iterator it;
14
15 for (uint32_t i = 1; i <= 4; i++) {
16 firstlist.push_back(i);
17 secondlist.push_back(i * 10);
18 }
19
20 it = firstlist.begin();
21 advance(it, 5);
22
23 copy(secondlist.begin(), secondlist.end(), inserter(firstlist, it));
24
25 for (it = firstlist.begin(); it != firstlist.end(); ++it)
26 cout << *it << ' ';
27 cout << endl;
28 }

$ ./t5
10 20 30 40 1 2 3 4

由于“it”指向 firSTList 的末尾(第 21 行),我期望 lines25/26 的输出为“1 2 3 4 10 20 30 40”,secondlist 的元素插入到 firSTList 的末尾。但是,元素似乎附加到 firSTList(如输出所示)。谁能帮我理解一下。

谢谢,艾哈迈德。

最佳答案

你打电话:

advance(it, 5);

但是,前进 4 位会使您到达 firSTList.end()。如果没有未定义的行为,您将无法进一步前进。

关于c++ - copy() 在列表的开头而不是结尾插入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23050604/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com