qwe*_*rty -2 c++ vector operator-overloading
我正在编写一个名为的类StringSet,它具有vector<string> data和int length作为其私有成员。
bool StringSet::operator == (StringSet d)
{
for (int i = 0; i < length; i++)
{
if (data[i] == d.data[i])
{
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试像这样调用这个函数时,
StringSet doc1, doc2;
if (doc1 == doc2)
{
cout << "Both sentences are identical!\n";
}
Run Code Online (Sandbox Code Playgroud)
我得到一个断言失败,说向量下标超出范围,我知道这意味着什么,但我不知道它在这里意味着什么。如果有人能指出我犯的一个明显错误,那就太好了,因为我是 C++ 的新手。
这很简单
bool StringSet::operator == (const StringSet& d) const
{
return data == d.data;
}
Run Code Online (Sandbox Code Playgroud)
std::vector并且std::string已经有比较运算符,因此您不必实现一些特殊的东西。