English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يدمج دالة merge() الخاصة بـ C++ List القوائم المترتيبة بأي ترتيب. سيتم دمج قائمة y في كتلة القائمة المحددة، مما سيتم حذف جميع العناصر منها.
إذا لم يتم تمرير معامل مقارنة، فإن القائمةين المترتيبين سيتم دمجهما في قائمة واحدة.
إذا تم تمرير معامل مقارنة كمعامل، فإن القائمة ستدمج بناءً على مقارنة داخلي.
قائمة list1 و list2. النحو هو:
list1.merge(list2); list1.merge(list2,compare);
list2: القائمة التي سيتم دمجها مع list1.
compare:هذا هو معامل مقارنة يعتمد على القيمة الأولى مقارنة بالقيمة الثانية. إذا كانت القيمة الأولى أقل من القيمة الثانية، فإنه يعود بـ true، وإلا يعود بـ false.
لا يعود بأي قيمة.
لننظر في مثال بسيط
#include<iostream> #include<list> using namespace std; int main() { list<int> li={1,2,3,4}; list<int> li1={5,6,7,8}; li.merge(li1); for(list<int>::iterator itr=li.begin();itr!=li.end();++itr){ std::cout << *itr << " " << std::endl; } return 0; }
الإخراج:
1 2 3 4 5 6 7 8
في هذا المثال، سيعمل دالة merge() على دمج قائمة li مع قائمة li1 في قائمة واحدة.
لننظر في مثال بسيط، عند إدخال معامل كاف
#include<iostream> #include<list> using namespace std; bool comparison(int first, int second) { bool a; a=first<second; return (a); } int main() { list<int> li={9,10,11}; list<int> li1={5,6,7,15}; li.merge(li1,comparison); for(list<int>::iterator itr=li.begin();itr!=li.end();++itr){ std::cout << *itr << " " << std::endl; } return 0; }
الإخراج:
5 6 7 9 10 11 15
في هذا المثال، يعتمد دالة merge() على مقارنة داخلية لدمج القوائم.