List là một trong những thư viện của C++ hỗ trợ việc khai báo và sử dụng danh sách liên kết đôi.
List hỗ trợ phương thức merge với 2 cách dùng:
merge (list& L): Ghép list L vào sau vị trí cuối cùng list hiện hành. Sau khi ghép nối, list L không còn phần tử nào.
merge (list& L, Compare comp): Ghép các phần tử của list L vào list hiện hành với vị trí dựa theo biểu thức comp. Biểu thức comp là một hàm trả về giá trị bool.
Tham khảo thêm tại trang http://www.cplusplus.com/reference/list/list/merge/.
Xét chương trình sau : (thử online tại cpp.sh/2jct), nhờ anh em giải thích tí về cách thức hoạt động của nó làm sao mà ra được kết quả như bên dưới. Cảm ơn nhiều
// list::merge
#include <iostream>
#include <list>
// compare only integral part:
bool mycomparison (double first, double second)
{ return ( (first)>(second) ); }
int main ()
{
std::list<double> first, second;
first.push_back (3.1);
first.push_back (2.2);
first.push_back (2.9); // 3.1 2.2 2.9
second.push_back (3.7);
second.push_back (7.1);
second.push_back (1.4);
second.push_back (2.1); // 3.7 7.1 1.4 2.1
first.merge(second,mycomparison);
std::cout << "first contains:";
for (std::list<double>::iterator it=first.begin(); it!=first.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
Kết quả:
first contains: 3.7 7.1 3.1 2.2 2.9 1.4 2.1