30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

534 16. Die <strong>C++</strong> Standard Library<br />

es auch vorkommen, dass die Basis für Ganzzahlentypen ungleich 2 ist, <strong>in</strong><br />

der Praxis hat diese Betrachtung allerd<strong>in</strong>gs im Normalfall ke<strong>in</strong>e Relevanz.<br />

static DataType round_error(): Liefert das Maß für den maximal möglichen<br />

Rundungsfehler. Gilt nur für Gleitkommatypen.<br />

static const float_round_style round_style: Enthält die Rundungsmethode<br />

für den Datentyp. Folgende Werte können angenommen werden:<br />

round_toward_zero, round_<strong>in</strong>determ<strong>in</strong>ate, round_to_nearest,<br />

round_toward_<strong>in</strong>f<strong>in</strong>ity oder round_toward_neg_<strong>in</strong>f<strong>in</strong>ity. Ist nur<br />

s<strong>in</strong>nvoll für Gleitkommatypen, denn Ganzzahlentypen unterstützen immer<br />

round_toward_zero, also Kommastellen “abschneiden”.<br />

static DataType signal<strong>in</strong>g_NaN(): Liefert die Repräsentation für e<strong>in</strong> signal<strong>in</strong>g<br />

not-a-number. Nur gültig, wenn has_signal<strong>in</strong>g_nan == true.<br />

static const bool t<strong>in</strong>yness_before: Enthält true, wenn vor dem Runden<br />

e<strong>in</strong> t<strong>in</strong>yness-Check stattf<strong>in</strong>det (soll heißen, e<strong>in</strong>e Zahl, die w<strong>in</strong>zig kle<strong>in</strong><br />

ist, kann nicht irrtümlich durch Rundung zu e<strong>in</strong>er “echten” 0 mutieren).<br />

Gilt nur für Gleitkommazahlen.<br />

static const bool traps: Enthält true, wenn Trapp<strong>in</strong>g für diesen Typ<br />

implementiert ist.<br />

Man sieht, es lässt sich für jeden Zahlentyp praktisch alles herausf<strong>in</strong>den, was<br />

man für Berechnungen wissen muss. Jetzt stellt sich nur noch die Frage,<br />

welche Berechnungen man überhaupt außer der e<strong>in</strong>fachen Arithmetik von<br />

Seiten der Standard Library zur Verfügung gestellt bekommt. Hier gibt es<br />

e<strong>in</strong>mal die “normalen” mathematischen Funktionen, die <strong>in</strong> zu f<strong>in</strong>den<br />

s<strong>in</strong>d. Dazu zählen s<strong>in</strong>, cos, log und viele andere. Ich überlasse hier den<br />

Lesern das Stöbern <strong>in</strong> den Headers bzw. <strong>in</strong> den Manuals. Aus historischen<br />

Gründen s<strong>in</strong>d auch noch e<strong>in</strong>ige mathematische Funktionen <strong>in</strong> zu<br />

f<strong>in</strong>den, wie z.B. abs. Es lohnt sich also, auch <strong>in</strong> diesem Header zu suchen :-).<br />

Mathematische Vektoren, Slices und entsprechende Operationen, die ich<br />

hier nicht genauer behandeln möchte, s<strong>in</strong>d im Header angesiedelt.<br />

Komplexe Zahlen und zugehörige Operationen f<strong>in</strong>den sich im Header<br />

. Wer auf der Suche nach e<strong>in</strong>em Zufallszahlengenerator ist, wird<br />

aus historischen Gründen <strong>in</strong> den Headers fündig werden.<br />

16.8 Algorithmen und Funktionsobjekte<br />

Zu guter Letzt möchte ich noch den kurzen H<strong>in</strong>weis liefern, dass die STL<br />

auch e<strong>in</strong>e ganze Reihe von Algorithmen zum Suchen, Sortieren, Permutieren,<br />

Ersetzen, etc. von Elementen <strong>in</strong> Sequences und anderen Datenstrukturen<br />

enthält. Auch existieren Basis-Templates für sogenannte Funktionsobjekte,<br />

die <strong>in</strong> Algorithmen und <strong>in</strong> Komb<strong>in</strong>ation mit Algorithmen Verwendung f<strong>in</strong>den<br />

und natürlich auch um eigene Implementationen ergänzt werden können.<br />

E<strong>in</strong>e genaue Darstellung derselben überlasse ich allerd<strong>in</strong>gs hier der Spezialliteratur,<br />

denn e<strong>in</strong>e naive Anwendung von vorgefertigten Algorithmen kann

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!