1
충돌 해결에 별도 체인을 사용하는 템플릿 기반 HashTable 클래스를 만들려고합니다. 내 문제는 특정 배열 인덱스에서 목록을 반복하는 방법을 모르므로 구문이 확실하지 않기 때문입니다.STL 목록의 배열에 대해 반복자를 사용하기위한 구문
내가 점점 계속 오류 C2228 : 클래스/구조체/노동 조합 및 오류 C2228이 있어야합니다 '.END'왼쪽 '.push_front'의 왼쪽은
클래스/구조체/노동 조합이 있어야합니다 나는 선언했습니다 내 다음과 같이 클래스의 private 멤버로 나열하십시오.
list<T1> **List;
기본 생성자를 사용하여 각 인덱스를 for 루프로 미리 채 웁니다. 내가 잘못 뭐하는 거지
template <typename T1>
void HashTable<T1>::Insert(T1 var)
{
int index = HashFunction(var);
List[index].push_front(var);
++LF;
cout << "Load Factor: " << LF << endl << endl;
}
template <typename T1>
void HashTable<T1>::Delete(string key)
{
int visited = 0;
list<T1>::iterator iter;
for(int i = 0; i < prime; ++i)
{
iter = List[i].begin();
while((iter != List[i].end) && ((*iter)->getKey() != key)) //While iter is not at the end of the list and while ID of iter is not equal to ID being obliterated
: 여기
는 문제 점입니까?
사용해보십시오! 와플은 그것을 간과했다고 믿을 수 없습니다. 이제는 내 생성자에 문제가있는 것처럼 보입니다 ... 이제 어떻게 선언해야합니까? –
목록 [i] = 새 목록 [소수]; –
목록 변수가 목록의 배열을 가리 키도록하려면 동적으로 할당해야합니다. List = new list [소수]; 이것은 "소수"의 목록 요소를 만듭니다. 기본 "생성자"가 필요하며 "기본"횟수만큼 실행됩니다. 배열의 특정 목록에 액세스하려면 List [i]를 사용하십시오. –