데이터를 저장하는 데이터 구조가 있습니다. 음, 데이터. 이제는 다양한 방식으로 다양한 데이터에 액세스해야하므로 본질적으로 메모리 인덱스를 구축하고 있습니다. 하지만 궁금하네요 : 인덱스가 포인터 또는 사본을 보유해야합니까?색인 만들기 : 사본 또는 포인터?
정교하게하려면, 내가 두 Widget
의이, 내가 지금
class Widget
{
// Ways to access the list of gears...
private:
std::list<Gears> m_gears;
};
가 있다고 가정하고, 자신의 Gear
의 사이에 두 매핑 사이에 존재한다. 현재,이
boost::unordered_map<Gear, Gear>
하지만 Gear
상당히 무거운 클래스이고, 나는 이렇게 많은 복사본을 만드는 것 같은 느낌은 가난한 디자인입니다. 포인터를 저장할 수는 있지만 매핑은 해당 Widget
s의 수명 동안 만 유효하며 ->
s가 시작됩니다 ... (std::list
이 std::vector
으로 변경되면 더 복잡해집니다 ...)
사본과 관련하여 실제로는 약간 더 나쁩니다. 각 방향마다 하나씩 두 개의 boost::unordered_map
이 있습니다. 그래서, 각 Gear
에 대해, 나는 그것의 2 개의 사본을 만들고있다.
또는 색인을 Widget
클래스 안에 넣을 수도 있지만 이는 Widget
클래스의 책임을 위반하는 것 같습니다.
다중 색인 컨테이너를 추가하지 않았습니까? – sbi