//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "STLSortierenUnit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- #include <vector> #include <algorithm> using namespace std; void __fastcall TForm1::Button1Click(TObject *Sender) {const max=10; int za[max]; // Zahlenarray randomize(); // Zufallsgenerator wird neu initialisiert // Zufallsarray aufbauen und ausgeben for (int i=0;i<max;i++ ) { za[i]=random(100); Memo1->SelText=IntToStr(za[i])+" "; } Memo1->Lines->Add(""); // Zufallsarray sortieren und ausgeben sort(za,za+max); for (int i=0;i<max;i++ ) Memo1->SelText=IntToStr(za[i])+" "; Memo1->Lines->Add(""); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) {int max=StrToInt(InputBox("Zufallszahlenliste","Wieviele Zahlen","")); vector<int> zv; // Zahlenvector (verkettete Liste) // Zufallsvektor aufbauen und ausgeben for (int i=0;i<max;i++) zv.push_back(random(100)); for (int i=0;i<max;i++ ) Memo1->SelText=IntToStr(zv[i])+" "; Memo1->Lines->Add(""); // Zufallsvektor sortieren und ausgeben sort(zv.begin(),zv.end()); for (int i=0;i<max;i++ ) Memo1->SelText=IntToStr(zv[i])+" "; Memo1->Lines->Add(""); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) {int max=StrToInt(InputBox("Zufallszahlenliste","Wieviele Zahlen","")); vector<int> zv; // Zahlenvector (verkettete Liste) vector<int>::iterator h; // Zeiger auf Vector vector<int>::reverse_iterator rh; // Zeiger auf Vector // Zufallsvektor aufbauen und ausgeben for (int i=0;i<max;i++) zv.push_back(random(100)); for (h=zv.begin();h<zv.end();h++) Memo1->SelText=IntToStr(*h)+" "; Memo1->Lines->Add(""); // Zufallsvektor aufbauen und ausgeben sort(zv.begin(),zv.end()); for (h=zv.begin();h<zv.end();h++) Memo1->SelText=IntToStr(*h)+" "; Memo1->Lines->Add(""); // Übungen zum Positionieren h=zv.begin(); Memo1->SelText=IntToStr(*h)+" "; // ersten Knoten ausgeben Memo1->SelText=IntToStr(*(h+2))+" "; // dritten Knoten ausgeben h=zv.end(); // letzten Knoten ausgeben Memo1->SelText=IntToStr(*(h-1))+" "; // rh=zv.rbegin(); // letzten Knoten ausgeben // Memo1->SelText=IntToStr(*rh)+" "; // Memo1->SelText=IntToStr(*(zv.rbegin()))+" "; // letzten Knoten ausgeben Memo1->Lines->Add(""); // Übung zum Einfügen h=zv.begin(); zv.insert(h+2,137); for (h=zv.begin();h<zv.end();h++) Memo1->SelText=IntToStr(*h)+" "; Memo1->Lines->Add(""); // Übung zum Löschen int delpos=StrToInt(InputBox("Löschen","An welcher Position?","")); h=zv.begin(); zv.erase(h+(delpos-1)); for (h=zv.begin();h<zv.end();h++) Memo1->SelText=IntToStr(*h)+" "; Memo1->Lines->Add(""); // Übung zum Vertauschen int pos1=StrToInt(InputBox("Tauschen","Position 1","")); int pos2=StrToInt(InputBox("Tauschen","Position 2","")); h=zv.begin(); iter_swap((h+pos1-1),(h+pos2-1)); for (h=zv.begin();h<zv.end();h++) Memo1->SelText=IntToStr(*h)+" "; Memo1->Lines->Add(""); }
Dokumentationen: