小编use*_*236的帖子

如何在std :: vector <strings>中查找重复项并返回一个std :: list,它们按字母顺序排序,不会在结果列表中重复

我有一个名为Wordd的类,它有一个成员word_,它是一个std :: list

我试图在该word_中找到重复项,并返回一个按字母顺序排列的列表,在返回的列表中没有重复项.到目前为止,我的代码编译和链接,但超时,可能是由于一些内部内存泄漏等.

class FindDuplicatesFunctor
{
public:
    std::list<std::string> list;
    std::vector<std::string> word_;
    FindDuplicatesFunctor(std::vector<std::string> words): list(0), word_(words){};
    void operator()(std::string const& str)
    {

        if(std::count(words_.begin(), words_.end(), str) > 1 && std::count(list.begin(), list.end(), str) == 0)
        {
            list.push_back(str);
        }
        list.sort();

    }
};
std::list<string> Wordd::FindDuplicates() const
{
    FindDuplicatesFunctor cf(word_);
    return std::for_each(words_.begin(), words_.end(), cf).list;
}
Run Code Online (Sandbox Code Playgroud)

任何想法为什么它没有执行其任务?

预先感谢您的帮助!

c++ stl

2
推荐指数
1
解决办法
441
查看次数

标签 统计

c++ ×1

stl ×1