Delphi
-
Original erstellt von aheim:
**Geht in C++ auch.Beim C++-Builder gibt es die Klasse "Set".
Set<type,min,max>Beispiel:
Set<int,0,17> A; // noch is nix drin A << 1 << 4 << 5 << 7; // A = { 1, 4, 5, 7} // mit Contains kann man, wie in Delphi mit in, prüfen ob ein Wert in dieser Menge // enthalten ist for(int i=0; i<=255; i++) if(A.Contains(i)) ShowMessage("enthalten");
Ich meine nicht, daß es das in dieser Form in Standard-C++ gibt.
Hier kann man aber die Containerklassen "set" und "multiset" benutzen.
Mit den Elementfunktionen insert, erase und find dann dementsprechend einfügen, löschen, suchen....**das ist doch ein wenig wasserkopf lastig in vergleich zu
isVocal := c in ['a','e','i','o','u'];
das könnte doch irgendwie so im neuen C++ Standard implementiert werden:
with d3dpp{
BackBufferCount = 1;
BackBufferWidth = 640;
BackBufferHeight = 480;
}http://www.cuj.com/reference/articles/2001/0104/0104d/0104d.htm?topic=reference
-
Set<char, 'a', 'z'> s; s << 'a' << 'e' << 'i' << 'o' << 'u'; bool isVocal = s.Contains(c);
oder auch gleich
bool isVocal =(Set<char, 'a', 'u'>() << 'a' << 'e' << 'i' << 'u').Contains(c);
Ist sie nicht schön, die VCL?
-
@Dimah:
// Example 1 #include <stdio.h>
Das ist aber nicht so schön.
-
Hast du nicht gemerkt das Beispiel 1 ein reines C Programm ist?
-
Wohl hab ich das gemerkt, aber mir hat mal jemand (hier im Forum) erzählt, auch in C soll man das .h weglassen und ein c vorneweg schreiben, also
#include <cstdio>
-
Wer hat dir das erzählt? Das ist falsch! Nur in C++.
-
Original erstellt von WebFritzi:
**```cpp
Set<char, 'a', 'z'> s;
s << 'a' << 'e' << 'i' << 'o' << 'u';
bool isVocal = s.Contains(c);oder auch gleich ```cpp bool isVocal =(Set<char, 'a', 'u'>() << 'a' << 'e' << 'i' << 'u').Contains(c);
Ist sie nicht schön, die VCL? ;)**
aber überlege mal was im hintergrund abgeht und lesbar ist es nicht wirklich,
die laufzeit kosten könnte man zwar durch etwas template zauber killen aber naja
-
isVocal=(strchr("aeiou",c)!=0);
keine hexerei
-
Trotzdem ist [Menge] in Pascal bzw. Object Pascal eine eingebaute Funktion, d.h. in Abhängigkeit der Menge ist eine Optimierung zur Compilezeit möglich. Beim Aufruf von strchar ist keine entsprechende Optimierung (in Abhängigkeit von der Menge) möglich. Klarer Punkt für Pascal hier.
-
Original erstellt von Marc++us:
Trotzdem ist [Menge] in Pascal bzw. Object Pascal eine eingebaute Funktion, d.h. in Abhängigkeit der Menge ist eine Optimierung zur Compilezeit möglich. Beim Aufruf von strchar ist keine entsprechende Optimierung (in Abhängigkeit von der Menge) möglich. Klarer Punkt für Pascal hier.sofern c erst zur laufzeit feststeht, wovon ich ausgehe (denn sonst wüsste ich ja obs n vokal ist oder nicht, dann sehe ich keine optimierungsmöglichkeiten. dann muss auch Pascal alle elemente auf gleichheit testen.