Wenn ich einen Zeiger auf ein Objekt definiere, das die []
Operator, gibt es eine direkte Möglichkeit, auf diesen Operator von einem Zeiger aus zuzugreifen?
Zum Beispiel kann ich im folgenden Code direkt auf Vec
Mitgliedsfunktionen (wie z.B. empty()
) durch Verwendung des Zeigerwerts ->
Operator, aber wenn ich auf die []
Operator muss ich zunächst einen Verweis auf das Objekt erhalten und dann den Operator aufrufen.
#include <vector>
int main(int argc, char *argv[])
{
std::vector<int> Vec(1,1);
std::vector<int>* VecPtr = &Vec;
if(!VecPtr->empty()) // this is fine
return (*VecPtr)[0]; // is there some sort of ->[] operator I could use?
return 0;
}
Ich kann mich durchaus irren, aber es sieht so aus, als ob (*VecPtr).empty()
ist weniger effizient als die Durchführung VecPtr->empty()
. Deshalb suchte ich nach einer Alternative zu (*VecPtr)[]
.