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 두고 링크드 리스트로 관리할까?
지금 조건은 주기적으로 전체를 순회해야됨.
어차피 벡터에 포인터가 들어가 있기에 두 방법 똑같이 캐쉬 로컬리티 이득을 못봄.
근데 순회하다가 '간헐적으로' 특정 객체를 삭제해야됨. <- 이거때문에 조~금더 복잡하지만 링크드 리스트를 쓸까 고민중인데
어떤 방법이 더 나을까..
std::list ㄱㄱ
벡터는 로컬리티도 로컬리티인데 random access가 필요하면 쓰는거 아님? STL에 리스트 있으니 그거 쓰면 될듯