错误代码为C2676,且迭代器为自定义类型的向量

                vector<element>::iterator it;
                it = find(table.begin(), table.end(), temp->c);
                if (it != table.end()) {
                    table.push_back(*temp);
                }

那就是发生错误的地方

   struct element {
    char c;
    int freq;
    int first_index;
    struct element* next;
};
vector<element> table;

那就是元素struct和vector的声明。 我需要检查元素是否在向量中,如果不推回去的话。为什么不起作用?我该如何解决?