Ich habe mich über den letzten Konstruktor für std::string
erwähnt here. Dort heißt es:Sind Zeiger primitive Typen in C++?
template<class InputIterator> string (InputIterator begin, InputIterator end);
Wenn InputIterator
ein integraler Typ ist, verhält sich als sechste Konstruktor Version (die ein Recht darüber) durch eine Schublade gesteckt beginnen und enden zu nennen:
string(static_cast<size_t>(begin),static_cast<char>(end));
In jedem anderen Fall Die Parameter werden als Iteratoren verwendet, und der Inhalt wird mit den Werten der Elemente initialisiert, die von dem Element, auf das von Iterator begin verwiesen wird, zu dem Element unmittelbar vor demjenigen, auf das durch das Iteratorende verwiesen wird, gehen.
Also was bedeutet das, wenn InputIterator
ein char *
ist?
EDIT: Ok, meine schlechte. Ich habe gerade festgestellt, dass es in der Dokumentation einen integralen Typ und keinen primitiven Typ gibt, also gilt die Frage nicht für dieses Beispiel. Aber sind Zeiger Primitive?
Außerdem sind sowohl ganze Zahlen als auch Zeiger "skalare Typen". – fredoverflow