Heim > php教程 > PHP开发 > Verwendung von Iterator im C++-STL-Standardcontainer

Verwendung von Iterator im C++-STL-Standardcontainer

高洛峰
Freigeben: 2016-12-13 17:33:52
Original
1260 Leute haben es durchsucht

Die meisten Standardcontainer von C++ STL bieten einen Iterator. Einige Container, wie z. B. „priority_queue“, verfügen nicht über einen Iterator, da sie semantisch gesehen kein zufälliges Durchlaufen von Elementen im Container zulassen sollten.

Unter den 23 klassischen Entwurfsmustern gibt es das Iteratormuster, und auch das Java Collection Framework implementiert dieses Muster:

Java-Code

package java.util;  
  
  
public interface Iterator<E> {  
  
    boolean hasNext();  
  
    E next();  
  
  
    void remove();  
}
Nach dem Login kopieren

Der Iterator von C++ ist besser als Java ist flexibler, was sich hauptsächlich in Folgendem widerspiegelt:

1. Java verfügt neben Front-to-Back-Iteratoren auch über Back-to-Back-Iteratoren, z :

Cpp-Code

map<int,int> amap;  
amap.insert(pair<int,int>(1,1));  
amap.insert(pair<int.int>(2,2));  
map<int,int>::iterator it;  
for(it = amap.begin();it != ampa.end();it++)//从前向后  
{  
    cout<<"key:"<<it->first<<" value:"<<it->second<<endl;
Nach dem Login kopieren

Cpp-Code

}
Nach dem Login kopieren

Cpp-Code

map<int,int>::reverse_iterator rit;  
for(rit = amap.rbegin();rit != amap.rend();rit++)//从后向前  
{  
     cout<<"key:"<<rit->first<<" value:"<<rit->second<<endl;  
}
Nach dem Login kopieren

2. Zusätzlich zum Iterator bietet C++ auch const_iterator , letzterer kann die Daten in der Sammlung nur lesen, aber ihren Wert nicht ändern

3 Der Iterator von Java scheint nur in einem einzigen Schritt inkrementieren zu können außer Darüber hinaus können auch arithmetische Operationen wie +n, -n implementiert werden, was für Szenarien, in denen ein Element zufällig gelesen werden muss, sehr nützlich ist. Es scheint jedoch, dass nur der Iterator des Vektors arithmetische Operationen unterstützt. Mit anderen Worten: Der Iterator it im vorherigen Beispiel kann keine Operationen wie it = it+n ausführen. Dies ist wichtig, sich daran zu erinnern.


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage