Warum verwendet der Iterator von List in STL die (* Knoten) .data anstelle von Node-Daten?

8

Ich habe kürzlich den Quellcode von SGI STL angesehen. Ich möchte wissen, ob ich das "- & gt;" Operator, der (*node).data ersetzt, um operator*() zu implementieren, wie folgt:

%Vor%

ersetzt durch:

%Vor%

zusätzlich:

Knoten ist ein Zeiger, der auf ein Strukturobjekt zeigt, wie folgt:

%Vor%     
Jeff 22.12.2013, 14:41
quelle

1 Antwort

10

In den meisten Fällen (z. B. wenn node ein Zeiger ist) sind diese gleichwertig. Der x->y -Operator ist definiert als äquivalent zu (*(x)).y . Es ist jedoch möglich, operator* oder operator-> zu überladen. In diesem Fall verhalten sie sich möglicherweise nicht wie erwartet (aber sollte ).

Wie Sie gesagt haben, ist node in diesem Fall nur ein Zeiger, also sind sie gleichwertig.

    
Joseph Mansfield 22.12.2013, 14:50
quelle

Tags und Links