Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Was meinst du damit? Kannst du mal was Code zeigen?ein Array wo nur AnsiString's
Original geschrieben von Thomas Darimont
Schau mal hier: http://www.sortieralgorithmen.de/ da findest du eine Erklärung, Laufzeitschätzung und Implementierung für so ziemlich jeden Sortieralgorithmus
Original geschrieben von Kachelator
Was meinst du damit? Kannst du mal was Code zeigen?
#include <string>
#include <iostream>
#include <vector>
#include <algorithm>
class artikel
{
public:
std::string name_;
int nummer_;
std::string gruppe_;
int anzahl_;
float preis_;
//- praktischer Konstruktor:
artikel( const std::string& name,
int nummer,
const std::string& gruppe,
int anzahl,
float preis )
: name_( name ), nummer_( nummer ), gruppe_( gruppe ), anzahl_( anzahl ), preis_( preis )
{}
//- praktisch für Ausgabe: <<-Operator
friend std::ostream& operator <<( std::ostream& of, const artikel& a );
// Vergleichoperator für Sortierung nach name_;
friend struct vergleiche_name;
// Vergleichoperator für Sortierung nach nummer_;
friend struct vergleiche_nummer;
};
std::ostream& operator <<( std::ostream& of, const artikel& a )
{
of << a.name_ << ", "
<< a.nummer_ << ", "
<< a.gruppe_ << ", "
<< a.anzahl_ << ", "
<< a.preis_ << std::endl;
return of;
}
// Zwei Funktoren als Vergleichsoperatoren:
struct vergleiche_name
{
bool operator()( const artikel& lhs, const artikel& rhs ) const
{
return lhs.name_ < rhs.name_;
}
};
struct vergleiche_nummer
{
bool operator()( const artikel& lhs, const artikel& rhs ) const
{
return lhs.nummer_ < rhs.nummer_;
}
};
// dasselbe als Funktionen:
bool vergleiche_name_func( const artikel& lhs, const artikel& rhs )
{
return lhs.name_ < rhs.name_;
}
bool vergleiche_nummer_func( const artikel& lhs, const artikel& rhs )
{
return lhs.nummer_ < rhs.nummer_;
}
int main(int argc, char* argv[])
{
typedef std::vector< artikel > artikel_container_typ;
artikel_container_typ lager;
lager.reserve( 5 ); // platz reservieren
// lager füllen
lager.push_back( artikel( "Schrauben", 1245, "Wekzeug [sic!]", 10, 1.35f ) );
lager.push_back( artikel( "Hammer", 1276, "Wekzeug [sic!]", 6, 1.15f ) );
lager.push_back( artikel( "Bohrer", 1357, "Wekzeug [sic!]", 3, 1.00f ) );
lager.push_back( artikel( "Dübel", 2896, "Wekzeug [sic!]", 10, 1.96f ) );
lager.push_back( artikel( "Nägel", 7096, "Wekzeug [sic!]", 2, 2.35f ) );
// ausgeben
std::cout << "*** Lager: ********" << std::endl;
std::copy( lager.begin(), lager.end(), std::ostream_iterator<artikel>( std::cout ) );
// sortieren nach name mit Funktor
std::sort( lager.begin(), lager.end(), vergleiche_name() );
// // sortieren nach name mit Funktion
// std::sort( lager.begin(), lager.end(), vergleiche_name_func );
// ausgeben
std::cout << "*** Lager nach name: ********" << std::endl;
std::copy( lager.begin(), lager.end(), std::ostream_iterator<artikel>( std::cout ) );
// sortieren nach name mit Funktor
std::sort( lager.begin(), lager.end(), vergleiche_nummer() );
// // sortieren nach name mit Funktor
// std::sort( lager.begin(), lager.end(), vergleiche_nummer_func );
// ausgeben
std::cout << "*** Lager nach nummer: ********" << std::endl;
std::copy( lager.begin(), lager.end(), std::ostream_iterator<artikel>( std::cout ) );
char c;
std::cin >> c;
return 0;
}
Original geschrieben von Matthias Reitinger
@sqeaker: Wie wäre es denn mal mit einem Tutorial über eine kleine Auswahl von Sortieralgorithmen, du scheinst da recht firm zu sein