Используя возвращенный вектор

В моей программе есть класс, который используется для чтения текста из файла, сохранения его в виде вектора строк, а затем возврата этого вектора в функцию, которая его вызвала.

Затем в этой функции я пытаюсь получить доступ к элементам копии вектора для сравнения значений.

Это выглядит примерно так:

filehandler.h

class fileHandler
{
public:
    std::vector<std::string> static ReadFromFile(std::string filename);

private:
    std::vector<std::string> blockOfText;
};

filehandler.cpp

std::vector<std::string> fileHandler::ReadFromFile(std::string filename)
{
//code to read file line by line and put into blockOfText

return blockOfText;
}

assetloader.cpp

void assetLoader::LoadFromExternalFile(std::string filename)
{
//Load the assets into the asset array
unsortedAssetText = ReadFromFile(filename);

//Iterate over the array
lineNumber = 0;
while (lineNumber < unsortedAssetText.size())
{
    if (unsortedAssetText[lineNumber] = "player")
    {

    }
}

Затем, когда я пытаюсь построить свою программу, я получаю следующую ошибку, которая я понятия не имею, что это значит, не говоря уже о том, как решить проблему. Кто-нибудь может помочь?

error: could not convert '(&((assetLoader*)this)->assetLoader::unsortedAssetText.std::vector<_Tp, _Alloc>::operator[]<std::basic_string<char>, std::allocator<std::basic_string<char> > >(((assetLoader*)this)->assetLoader::lineNumber))->std::basic_string<_CharT, _Traits, _Alloc>::operator=<char, std::char_traits<char>, std::allocator<char> >(((const char*)"player"))' from 'std::basic_string<char>' to 'bool'|

3 ответа

Решение

= оператор присваивания, оператор сравнения ==:

if (unsortedAssetText[lineNumber] == "player")
//                                ^^

Изменить:

if (unsortedAssetText[lineNumber] = "player")

чтобы:

if (unsortedAssetText[lineNumber] == "player")

Возможно, вам нужно изменить строку

    if (unsortedAssetText[lineNumber] = "player")

в

    if (unsortedAssetText[lineNumber] == "player")
Другие вопросы по тегам