【发布时间】:2015-07-12 07:53:28
【问题描述】:
我正在尝试使用以下 main 来测试我修改的 HashMap 类。
#include <iostream>
#include "HashMap.h"
using namespace std;
int main(){
HashMap<int,vector<string>> hash(20);
vector<string> vec;
cout<<"Inserting item... ";
if(hash.insert(2)){
cout<<"successful. ";
hash.find(2).push_back("word ");
hash.find(2).push_back("is ");
hash.find(2).push_back("pushed ");
hash.find(2).push_back("back. ");
hash.find(2).push_back("yes!\n");
} else {
cout<<" unsuccessful.";
return 0;
}
vec = hash.find(2);
for(auto& words: vec)
cout<< words<<endl;;
return 0;
}
最后的 for 循环不打印任何内容。
find 函数定义如下:
Data find(const Key& key) { return array[findPos( key )].data_; }
其中Data 是HashMap 类中的第二个模板变量。我进行了几次测试,find 返回空向量,即使在使用 push_back 之后也是如此。这是为什么?我该怎么做才能将项目推入向量中?
【问题讨论】: