-
之前有演示过std::merge的用法,参见C++ 算法 归并元素
-
然后看下std::list::merge的例子
#include <iostream> #include <list> std::ostream& operator<<(std::ostream& ostr, const std::list<int>& list) { for (auto &i : list) { ostr << " " << i; } return ostr; } int main() { std::list<int> list1 = { 5,9,0,1,3 }; std::list<int> list2 = { 8,7,2,6,4 }; list1.sort(); list2.sort(); std::cout << "list1: " << list1 << "\n"; std::cout << "list2: " << list2 << "\n"; list1.merge(list2); // 注意 std::cout << "merged: " << list1 << "\n"; std::cout << "list2: " << list2 << "\n"; }
-
结果
list1: 0 1 3 5 9 list2: 2 4 6 7 8 merged: 0 1 2 3 4 5 6 7 8 9 list2: // 直接改变了各节点的指向,即list2的节点被打散加入了list1中
C++ 那些被遗漏的细节7 std::list::merge
最新推荐文章于 2023-10-28 01:06:53 发布