C++ Kurs

Wenn fertig, bitte Fenster schließen

Lösung zu "pair Datentyp"


// Lösung zu pair

// Dateien einbinden
#include <iostream>
#include <string>

using std::cout;
using std::endl;
using std::string;

// Aktienkurse festlegen
std::pair<float, std::string> aktien[] = {
    std::make_pair(333.33f,string("Daimler")),
    std::make_pair(111.11f,string("VW")),
    std::make_pair(222.22f,string("BMW")),
    std::make_pair(11.11f,string("General Motors"))};
// Anzahl der Kurse
const size_t SSIZE = sizeof(aktien)/sizeof(aktien[0]);

// main() Funktion
int main()
{
    size_t index;

    // Aktienkurs ausgeben
    cout << "Aktienkurse:\n";
    cout << "-----------:\n";
    for(index=0; index<SSIZE; index++)
    {
        cout << "Hersteller: " << aktien[index].second
             << ", Kurs: " << aktien[index].first << endl;
    }

    // VW Aktie um 111.11 erhöhen
    aktien[1].first += 111.11f;
    cout << "** VW Aktie um 111.11 erhöht! **\n";

    // Aktien nach Wert sortieren
    bool changed;
    do
    {
        changed = false;
        for (index=0; index<SSIZE-1; index++)
        {
            // Vergleicht primär Kurse, sekundär Hersteller
            if (aktien[index]>aktien[index+1])
            {
                std::pair<float,std::string> temp = aktien[index];
                aktien[index] = aktien[index+1];
                aktien[index+1] = temp;
                changed = true;
            }
        }
    } while (changed);

    // Sortierte Kurse nach Wert ausgeben
    cout << "\nKurse nach Wert/Hersteller sortiert:\n";
    cout << "------------------------------------\n";
    for(index=0; index<SSIZE; index++)
    {
        cout << "Hersteller: " << aktien[index].second
             << ", Kurs: " << aktien[index].first << endl;
    }
}