Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » int &operator() ... und std::vector

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 <
000
18.04.2007, 22:04 Uhr
Pler
Einer von Vielen
(Operator)


Folgendes sollte doch in Ordnung sein. Funktionieren tut es auf jeden Fall erst mal.
Ich will aber lieber noch mal nachfragen

Es geht vor allem um die Methode int &operator()(int s)


C++:
class C{
    vector<int> v;
public:
    int &operator()(int s) {
        if(v.size() <= s) v.resize(s + 1);
        return v[s];
    }
    int operator()(int s) const {
        return v[s];
    }
};

int main()
{
    C c;
    c(2) = 111;
    cout << c(2) << endl;

    return 0;
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.04.2007, 10:11 Uhr
stephanw
localhorst


Sieht nicht falsch aus. Aber wäre für eine Art Feldsemantik nicht operator[] besser ?
--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.04.2007, 12:48 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ging bei dem nicht sogar sowas wie


C++:
int &operator()(int x, int y)
{
  return v[x][y];
}


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.04.2007, 19:47 Uhr
Pler
Einer von Vielen
(Operator)


@stephanw
ja, sicher. War ja auch nur Forengerecht dargestellt.
Mein "Vektor-Wrapper" bringt ja so erst mal gar nichts.

@FloSoft:
ja, das geht schon eher in die Richtung, in der ich das brauche. Nur noch mit vers. Datentypen und son Spaß. Außerdem kann ich so beim Zugriff noch Sachen prüfen und sonst was machen.

Schon bei FloSofts Beispiel sollte man mit [] nicht weiterkommen, glaub ich.

Vielen Dank

Dieser Post wurde am 19.04.2007 um 19:48 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.04.2007, 11:26 Uhr
stephanw
localhorst


Zumindest kann es dann komplizierter werden.
Wenn Du intern einen vector<vector> verwaltest, kannst Du ja den Vector der zweiten Dimension zurückgeben, der dann seinerseits wieder den Operator[] anbietet.
Sonst musst Du irgendein Handle basteln und zurückgeben, das den operator[] unterstüzt und darin Zugriff auf die richtige Dimension Deines Containers hat. Ist also schon nicht mehr ganz trivial
--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: