Range constructor bei containern mit leerem Range ub?
-
Nehmen wir an ich konstruiere einen Vector mit zwei pointern in der art:
std::vector<int> intvec(startintp, endintp);
Muss ich dann sicherstellen, dass die Ponter nicht auf das selbe Element zeigen (bei leerem range), oder ist garantiert, dass man in diesem Fall einfach einen leeren vector bekommt?
-
Das ist garantiert.
-
Beim Iteratorenpaar-Konstruktoren gilt (wie) immer, dass beide Iteratoren ein rechtsoffenes Intervall bilden.
-
Arcoth schrieb:
Beim Iteratorenpaar-Konstruktoren gilt (wie) immer, dass beide Iteratoren ein rechtsoffenes Intervall bilden.
Das ist zu ungenau.
In der Mathematik ist [a;a)=[b;b)=[a;a-1)=Ø, aber in C++ darf man nicht &x und &x-1 übergeben.
Das heisst: Iteratorenpaare sind rechtsoffene Intervalle, für die gelten muss right≥left.