Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » faq- frage

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ]
000
04.08.2004, 16:57 Uhr
~goner
Gast


zuerst mal das beispiel:


C++:
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <iterator>
#include <set>

int main() {
  std::srand(std::time(0));
  std::set<int> zahlen;

  while(zahlen.size() < 15)
    zahlen.insert(std::rand() % 80 + 1);

  std::copy(zahlen.begin(), zahlen.end(),
            std::ostream_iterator<int>(std::cout, " "));
  std::cout << std::endl;

  return 0;
}



zuerst wollte ich wissen was:
.begin
.end
bedeuten und wo sie herkommen.
dann fand ich noch irgendwo:
.put
.set
was gibts denn da überhaupt so alles an befehlen? kann man sowas nicht selber in objekten definieren?
und wie nennt man das fachsprachlich? punkt...anweisungen.

danke schonmal
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.08.2004, 17:17 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


das ist im allgemeinen alles STL (standard template library) das teil soll dir das leben erleichtern indem es dir recht mächtige funktionen zur verfügung stellt. den, der es nicht kennt, treibt es eher in den wahnsinn


C++:
int main() {
  std::srand(std::time(0)); //zufallsgenerator initialisieren
  std::set<int> zahlen;   //eine stl-containerklasse set definieren. ist ähnlich einem array...

  while(zahlen.size() < 15)  //so lange im set noch keine 15 zahlen gespeichert sind
    zahlen.insert(std::rand() % 80 + 1); //füge eine zufallszahl von 1 bis 80 hinzu
                                                     //der vorteil beim set hierbei ist das es automatisch verhindert das zahlen doppelt vorkommen, von hand müssest du das extra impelmentieren wenn du einfach ein array genommen hättest

  std::copy(zahlen.begin(), zahlen.end(),
            std::ostream_iterator<int>(std::cout, " "));  //das kopiert alle ermittelten zahlen auf std::cout also gibt sie aus... das halt von begin bis ende... du kannst ja auch mal probieren begin +3 und end -3 einzugeben dann werden halt entsprechend viele weggelassen
  std::cout << std::endl; //noch ein zeilenende schreiben fertig

  return 0;
}




--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 04.08.2004 um 17:29 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.08.2004, 17:30 Uhr
~goner
Gast


kriegt man für sowas auch ne liste der standard tmplt lib. aber schonma danke für die schnelle antwort
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.08.2004, 17:38 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


klar wie immer alles in fucking english
www.sgi.com/tech/stl/index.html
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
05.08.2004, 09:15 Uhr
typecast
aka loddab
(Operator)



Zitat von ~goner:

zuerst wollte ich wissen was:
.begin
.end
bedeuten und wo sie herkommen.
dann fand ich noch irgendwo:
.put
.set
was gibts denn da überhaupt so alles an befehlen? kann man sowas nicht selber in objekten definieren?
und wie nennt man das fachsprachlich? punkt...anweisungen.

danke schonmal


Also zuerst sind .begin() und .end() zwei Memberfunktion des Containers set (Jeder Container der STL hat diese Methoden)
begin() gibt einen Iterator auf das erste Element des Containers zurueck, end() gibt einen Interator auf das Ende (oder besser Ende+1 zurueck)

Die Funktionen heissen Memberfunktionen oder Methoden (vielleicht gibt es noch ein paar Begriffe dafuer, aber die Fallen mir gerade nicht ein)

Schau dir dazu mal das C++ E-Book bei unseren E-Books an.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
05.08.2004, 11:04 Uhr
Zero




Zitat von ~goner:
:

zuerst wollte ich wissen was:
.begin
.end
bedeuten und wo sie herkommen.
was gibts denn da überhaupt so alles an befehlen?



Begin und End benötigst du wenn du einen Vektor definierst, du musst ja angeben können wo der Vektor anfängt (begin) und wo er aufhört (end). Du hast den Vorteil das du den Vektor wie ein typisches Array durchlaufen kannst.




Zitat von ~goner:
:
was gibts denn da überhaupt so alles an befehlen?





-> = verwendung bei Pointer (Zeiger auf eine Adresse)
dann gibts noch Underline und Punkt -müssten die geläufigsten sein

Zu den Befehlen: Befehl -> Markieren -> F1

Hab für Borland 6 ne Deutsche Hilfe bei Interesse


Möge ein PRO mich verbessern

Dieser Post wurde am 05.08.2004 um 11:07 Uhr von Zero editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
05.08.2004, 11:09 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


per underline eine funktion aufrufen? das halte ich für ein gerücht ...

folgendes funktioniert:


C++:
// so erstmal eine beispielklasse
class A {
  public:
    int funktionA(int a) { return a; };
};

// nun mal zu den beispielen:

// aufruf einer memberfunktion per .
A instanzA;
std::cout << instanzA.funktionA(44);
// dies gibt 44 aus!

// aufruf einer memberfunktion per ->
A *pInstanzA = &instanzA;
// pInstanzA ist nun ein Pointer (Zeiger) auf instanzA
std::cout << pInstanzA->funktionA(44);
// dies gibt auch 44 aus



Also nochmals:
Bei "festen" Variablen, d.h Variablen, die keine Zeiger sind, muss man zum Funktionsaufruf einer Memberfunktion (hier funktionA) den . nehmen.
Falls man einen Zeiger auf eine Variable hat, muss man -> nehmen.

Ich hoffe ich hab mich verständlich ausgedrückt
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
05.08.2004, 11:12 Uhr
Zero



ich würde niemals behaupten das man ne Funktion per underline Aufruft, ist anders gemeint !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
05.08.2004, 11:19 Uhr
virtual
Sexiest Bit alive
(Operator)


@Zero
wie denn?

Ansonsten: Ich habe in dunkler Erinnerung, daß der Operator "->" nicht von anfang an dabei war, ich meine mich zu entsinnen, daß man früher schreiben mußte:

C++:
(*a).b;


wenn man einfach nur

C++:
a->b;


meinte.
Das war aber in grauer Vorzeit, also vor 20, 30 Jahren so. Jedenfalls zeigt das Beispiel, daß der Operator -> eigentlich redundant ist. Aber ausreichend praktisch.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
05.08.2004, 11:25 Uhr
Zero



Hatte es nicht als Aufruf gemeint ,wollte nur mal die Standard Operatoren kurz erwähnen da
goner etwas zu geschrieben hatte, wie gesagt verbessert mich nur -bin euch für jeden Rat mächtig Dankbar
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: