目前我正在写一个 WordCounter (MapReduce)。
我对 reduce 函数的实现如下所示:
void WordCounter::Reduce(string intermediateWord, vector<int> intermediateLineNr) {
resultMap.insert(pair<string, vector<int> >(intermediateWord, intermediateLineNr));
vector<int>& resultLineNr = resultMap[intermediateWord];
resultLineNr.clear();
resultLineNr.push_back(intermediateLineNr.size());
} // WordCounter::Reduce
我还使用了一个 resultMap,它是一个带有字符串和矢量数据组件的地图:
map<string, vector<int> > WordMap;
我使用了一个 intermediateMap 变量,它包含每个单词和它出现的行号。现在我想将每个单词添加到 resultMap 但我想在向量的第一个位置添加单词的数量而不是行号。
现在我复制整个 middleLineNr 向量,清除它并在第一个位置插入单词数。
是否有可能直接插入特定向量的第一个位置?
我认为应该有一个更简单的方法来做到这一点。