#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;
}
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.