CrossWord拼图出现错误:“ operator ==”不匹配

首先,我想对这个问题说抱歉,如果这是转贴。 我是c ++ stl的新手,现在被卡住了。 我已经创建了此函数来解决C ++中的填字游戏,但它向我展示了

prog.cpp:17:49:错误:'operator =='不匹配(操作数类型为'__gnu_cxx :: __ alloc_traitsstd :: allocator > :: value_type {aka std :: __cxx11 :: basic_string}'和'__gnu_cxx :: __ alloc_traitsstd :: allocator :: value_type {aka char}'))

if(matrix [i] [j] =='-'|| matrix [i] [j] == word [0])

void solve(vector<vector<string>> &matrix,vector<string> &puzzleWords,int idx)
{
if(idx==puzzleWords.size())
{
    return;
}
string word=puzzleWords[idx];
for(int i=0;i<matrix.size();i++)
{
    for(int j=0;j<matrix[i].size();j++)
    {
        if(matrix[i][j]=='-' || matrix[i][j]==word[0])
        {
            if(canPlacedHorizontally(matrix,word,i,j))
            {
                vector<bool> wePlaced=placeWordHorizontally(matrix,word,i,j);
                solution(matrix,word,idx+1);
                unplaceWordHorizontally(matrix,wePlaced,i,j);
            }
            
            if(canPlacedVertically(matrix,word,i,j))
            {
                vector<bool> wePlaced=placeWordVertically(matrix,word,i,j);
                solution(matrix,word,idx+1);
                unplaceWordVertically(matrix,wePlaced,i,j);
            }
        }
    }
}

}