Untitled
unknown
c_cpp
a year ago
1.4 kB
2
Indexable
Never
template <typename T> void RemoveDocument ( T police, int document_id ) { std::vector<const std::string*> words_to_remove ( document_to_word_freqs_.size ( )); // Получаем список слов, присутствующих в удаляемом документе std::transform ( police , document_to_word_freqs_[document_id].begin ( ) , document_to_word_freqs_[document_id].end ( ) , words_to_remove.end ( ) , []( const auto& word_freq ) { return &word_freq.first; } ); // std::transform // Удаляем упоминания этих слов из word_to_document_freqs_ std::for_each ( police , words_to_remove.begin( ) , words_to_remove.end ( ) , [&] ( const auto& wordPtr ) { word_to_document_freqs_[*wordPtr].erase ( document_id ); } ); // Удаляем информацию о документе из остальных контейнеров n_doc_id_.erase ( document_id ); documents_.erase ( document_id ); document_to_word_freqs_.erase ( document_id ); }