저의 목표는 (메모리 제한이없는 세계에서) 약 10^5 x 10^5 인 행렬의 가장 관련있는 항목을 저장하는 효율적인 구조를 만드는 것입니다 복식으로 채워진다. 행렬은 대칭이므로 실제로 (10^10)/2 값만 포함합니다.저장 및 해시하는 가장 좋은 방법 키 (C++)
시뮬레이션에서 여러 번 항목에 액세스해야하므로 빠른 검색이 중요합니다.
구조를 관리하기 쉽게하기 위해 사용하지 않을 수있는 멤버를 삭제합니다. 색인이 (int_x1, int_x2) 인 경우, 예를 들어 x1을 포함하는 모든 쌍을 삭제하려는 경우가 있습니다.
이 작업에 가장 적합한 구조 또는 구조 집합은 무엇입니까? 두 int에 대한 좋은 해시는 무엇입니까?
휴대 성을 위해 Boost를 피하고 싶습니다. 현재 TR1의 unordered_map을 프로그램의 다른 곳에서 사용하고 있습니다. 나는 키 쌍으로 unordered_map을 다시 사용하려고 생각하고 있었지만이 방법으로 항목을 효율적으로 삭제할 수 있을지 잘 모르겠다. 좋은 해시 함수가 어떻게 생겼는지 모르겠다.
저는 시작 프로그래머입니다. 따라서 분명히 말씀해주십시오.
또한 모든 x1 멤버만큼 모든 x2 멤버를 삭제해야합니까? – jmucchiello
CSR과 같은 표준 스파 스 매트릭스 스토리지 구성표를 사용 해본 적이 있습니까? 매트릭스에서 수행해야하는 작업에 따라 제대로 작동 할 수 있습니다. – mch
휴대 성을 위해 부스트를 피 하시겠습니까? 부스트는 꽤 휴대용이며 당신이 필요로 할 수 있습니다 플라이급있다. – Patrick