diff --git a/src/KeywordExtractor.hpp b/src/KeywordExtractor.hpp index a78ea1f..d962502 100644 --- a/src/KeywordExtractor.hpp +++ b/src/KeywordExtractor.hpp @@ -138,8 +138,10 @@ namespace CppJieba itr ++; } - keywords.resize(MIN(topN, wordmap.size())); - partial_sort_copy(wordmap.begin(), wordmap.end(), keywords.begin(), keywords.end(), _cmp); + keywords.clear(); + std::copy(wordmap.begin(), wordmap.end(), std::inserter(keywords, keywords.begin())); + topN = MIN(topN, keywords.size()); + partial_sort(keywords.begin(), keywords.begin() + topN, keywords.end(), _cmp); return true; } private: @@ -153,7 +155,7 @@ namespace CppJieba } private: - static bool _cmp(const pair& lhs, const pair& rhs) + static bool _cmp(const pair& lhs, const pair& rhs) { return lhs.second > rhs.second; }