C++ BUILDER XE Перемешать массив int перемешать вектор int перемешать строки ListBox
=
=
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
using namespace std;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//----------перемешать строки в ListBox-----------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList *list1; // объявляем указатель
list1 = new TStringList ; // создаем объект выдиляем память
int n=ListBox1->Items->Count;
randomize();
while ( n!=0 ) {
int k=random(n);
list1->Add(ListBox1->Items->Strings[k] ) ;
ListBox1->Items->Delete(k) ;
n=ListBox1->Items->Count;
}
ListBox1->Items->Assign(list1);
delete list1;
}
//--------------перемешать массив int-------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Edit1->Text="";
Edit2->Text="";
const static int f=100;
int s[f],m[f];
for(int i=0; i<f; i++){
s[i]=i; m[i]=0;
Edit1->Text= Edit1->Text+i+"," ;
}
randomize();
int n=f-1;
while ( n >= 0 ) {
int k=random(n);
m[n]=s[k] ;
s[k]=s[n] ;
n--;
}
for(int i=0; i<f; i++){
Edit2->Text= Edit2->Text+m[i]+"," ;
}
}
//----------перемешать вектор int-----------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Edit3->Text="";
Edit4->Text="";
vector<int> arr; //Объявили вектор типа int
for (int i = 0; i < 20; ++i) {
arr.push_back(i) ;
}
for (int i = 0; i < arr.size(); ++i) {
Edit3->Text= Edit3->Text + arr.at(i)+",";
}
srand(time(0));
random_shuffle( arr.begin(), arr.end() );
for (int i = 0; i < arr.size(); ++i) {
Edit4->Text= Edit4->Text + arr.at(i)+",";
}
}
//------------перемешать вектор UnicodeString---------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
vector<UnicodeString> buf_in, buf_out;
for (int i = 0; i < 35 ; i++){
buf_in.push_back( ListBox1->Items->Strings[i]+"str" );
}
srand(time(0));
random_shuffle( buf_in.begin(), buf_in.end() );
//Выводим результаты
ListBox2->Items->Clear();
for (int i = 0; i < buf_in.size(); i++) {
UnicodeString str = (buf_in.at(i));
ListBox2->Items->Add( str );
}
}
//---------------------------------------------------------------------------
=
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ComCtrls.hpp>
//------------------------------------------------------------------------
#include <vector>
#include <algorithm>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TPageControl *PageControl1;
TTabSheet *TabSheet2;
TTabSheet *TabSheet3;
TTabSheet *TabSheet4;
TTabSheet *TabSheet1;
TListBox *ListBox1;
TButton *Button1;
TEdit *Edit1;
TEdit *Edit2;
TButton *Button2;
TButton *Button3;
TButton *Button4;
TEdit *Edit3;
TEdit *Edit4;
TListBox *ListBox2;
TLabel *Label1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
void __fastcall Button4Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
=
|