class T

{

public:

    T() = default;

    virtual ~T() noexcept = default;

    virtual void Pure() = 0;

private:

    T* prev;

    T* next;

};


순수 가상함수가 들어있는 추상 클래스 구현체를 new로 생성하고 이 포인터들을 배열에 담아서 관리하려고 하는데,


std::vector<T*> vt; 에 넣어서 관리할까, 아니면 위에처럼 prev, next 두고 링크드 리스트로 관리할까?


지금 조건은 주기적으로 전체를 순회해야됨.


어차피 벡터에 포인터가 들어가 있기에 두 방법 똑같이 캐쉬 로컬리티 이득을 못봄.


근데 순회하다가 '간헐적으로' 특정 객체를 삭제해야됨. <- 이거때문에 조~금더 복잡하지만 링크드 리스트를 쓸까 고민중인데


어떤 방법이 더 나을까..