На этом шаге мы рассмотрим пример объединения двух списков.
В следующем примере выполняется слияние двух списков с помощью функции-члена merge().
//--------------------------------------------------------------------------- #include <vcl.h> #include <iostream> #include <list> #include <winuser.h> #include <conio.h> //необходимо для getch() #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused using namespace std; std::string ToRus(const std::string &in) { char *buff = new char [in.length()+1]; CharToOem(in.c_str(),buff); std::string out(buff); delete [] buff; return out; } int main(int argc, char* argv[]) { list<int> lst1, lst2; int i; for(i=0; i<20; i+=2) lst1.push_back(i); for(i=1; i<19; i+=2) lst2.push_back(i); cout << ToRus("Содержимое списка lst1: "); list<int>::iterator p = lst1.begin(); while(p != lst1.end()) { cout << *p<<" "; p++; } cout << endl << endl; cout << ToRus("Содержимое списка lst2: "); p = lst2.begin(); while(p != lst2.end()) { cout << *p <<" "; p++; } cout << endl << endl; // Объединение списков lst1.merge(lst2); if(lst2.empty()) cout << ToRus("Список lst2 теперь пуст.\n"); cout << ToRus("Содержимое lst1 после объединения:\n"); p = lst1.begin(); while(p != lst1.end()) { cout << *p<<" "; p++; } getch(); return 0; } //---------------------------------------------------------------------------
Результаты выполнения этой программы представлены на рисунке 1.
Рис.1. Результат работы приложения
На следующем шаге мы рассмотрим пример хранения в списке объектов класса.