私は次の独自の作成されたデータ型を持っています:
typedef map<string, vector<map<string, vector<int> > > > Entry;
次のデータ構造を表す必要があります。
Filename | vector<map<Word, vector<LineNumber> > >
つまり、各 FileName には多くの単語が含まれており、各単語には linNumbers が含まれています。これは、多くのファイルにわたる単語のインデックスを表します。
このために、fileName、word、および lnr をデータ構造に追加するファンクターを作成したとします。
FileWordLineAdder(string fileName, Entry wordLnr, int lnr) : fileName(fileName), entries(wordLnr), lnr(lnr) {
}
void operator()(string word) {
word = normalize(word);
if (word.size() == 0)
return;
vector<map<string, vector<int> > >& wordLnr = entries[fileName];
/* PROBLEM START */
//vector<int>& lnrs = wordLnr[word];
//lnrs.push_back(lnr);
/* PROBLEM END*/
} // operator()
現在、fileName をデータ構造に挿入できます (問題セクションの上の行を参照) が、ベクター内のマップにアクセスできません。
誰でも私を助けてください。