Witam,
Mam taki kod, jak najprostszym sposobem klasa może usunąć samą siebie z wektora ją zawierającego? Jedyne co mi przychodzi do głowy to przekazanie w parametrze pointera na vector i pozycję klasy w nim ale wydaje mi się że to niezbyt dobre rozwiązanie.
#include <vector>
#include <thread>
class Class
{
public:
Class()
{
std::thread Thread(&Class::DoSomething, this);
Thread.join();
}
void DoSomething()
{
std::this_thread::sleep_for(std::chrono::seconds(1));
}
};
int main()
{
std::vector<Class>Vector;
while (true)
{
Vector.push_back(Class());
printf("Vector size - %i\n", Vector.size());
}
}