我做了简单的结构:
struct sToken
{
std::string token;
unsigned int lineNb;
};
我想使用push_back()
方法将此结构插入标准向量中,但是当我这样做时:
std::vector<sToken> result;
result.push_back(tkn); //compiler-error
我收到以下错误消息:
no match for operator== in __first__gnu_cxx::__normal_iterator<_Iterator,_Container>::operator*<sToken*,std::vector<sToken> >()== in stl_algo.h
但是,如果我想输入标准字符串,一切都可以:
std::vector<std::string> result;
result.push_back(tkn.token); //OK
我看到编译器在抱怨operator==
,但是为什么呢?operator==
当我只想将结构放入向量时,为什么要在这种情况下提供?如果我必须实现这个运算符,你能告诉我应该如何实现它吗?谢谢。