Typ iteratora który będzie zawsze na końcu

1
#include <iostream>
#include <vector>

class Vector2d
{
public:
	int x, y;
	Vector2d(int x, int y) : x(x), y(y) {};

	void funcCout()
	{
		std::cout << x << " " << y << std::endl;
	};
};

void addValue(std::vector<Vector2d> &v, int x, int y)
{
	v.emplace_back(x, y);
	std::vector<Vector2d>::iterator itr = v.end();

	itr->funcCout();
}

int main()
{
	std::vector<Vector2d> v;
	
	int j = 0;
	for (int i = 0; i < 10; i++, j++)
		addValue(v, i, j);

	return 0;
}

title

Już mówię o co chodzi.
W funkcji funcCout chcę ustawić iterator zawsze na końcu wektora ale nie na pozycji która zwraca end() bo wtedy trzeba odjąć 1 ani też używać reverse iterator, no chyba, że to jedyne rozwiązanie.
Da się jakoś to rozwiązać?
Kod jest przykładowy, używam identycznej logiki w większym projekcie, dlatego takie podejście w dodawaniu elementów i wywoływaniu ich funkcji.

1

Dlaczego nie chcesz std::prev(v.end())?

1

nie chciałem v.end() - 1
astd::vector<Vector2d>::reverse_iterator itr = v.rbegin(); dziwnie wyglada.

Dzięki pingwindyktator za std::pre(), wydaje mi sięze wygląda to lepiej

2

auto itr = v.rbegin(); wcale nie wygląda dziwnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1