【发布时间】:2021-08-03 08:18:18
【问题描述】:
我是 STL 概念的新手,在列表合并代码中遇到了问题。
list<int> lst1;
list<int> lst2;
lst1.push_back(5);
lst1.push_back(7);
lst1.push_back(1);
lst1.push_back(9);
lst1.push_back(12);
lst2.push_back(45);
lst2.push_back(6);
lst2.push_back(9);
代码的输出:
lst1.merge(lst2)
是 5 7 1 9 12 45 6 9
但是当我们分别对这两个列表进行排序时,我们会得到
lst1.sort()
lst2.sort()
lst1.merge(lst2)
作为输出排序的整个列表是 1 5 6 7 9 9 12 45
为什么没有输出 1 3 7 9 12 6 9 45 ?
我们正在单独对列表进行排序,为什么最终的列表会被排序?
【问题讨论】:
-
你确定你的两个输出中有
5?您的两个输入都没有(输入值为3)。并不是说它不会发生(滥用函数可能会做一些奇怪的事情),但您似乎更有可能打错了(特别是因为正确的用法显示相同的不存在5)。 -
是的,打错字了