Используя возвращенный вектор
В моей программе есть класс, который используется для чтения текста из файла, сохранения его в виде вектора строк, а затем возврата этого вектора в функцию, которая его вызвала.
Затем в этой функции я пытаюсь получить доступ к элементам копии вектора для сравнения значений.
Это выглядит примерно так:
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")