出现一个错误,该错误不允许我使用指针将Vector的索引移动到另一个函数。
仅供参考:vectorTest
已从包含单词和数字的文件中读取。
错误强调了vectorData[0]
和状态
“不存在从std :: string到std :: vector的用户定义的合适转换”
这是代码。...
class dataInfo
{
private:
vector <int> idVector;
vector <string> houseVector;
vector <string> vectorData;
int idNumber;
string houseFirst;
public:
void testClasses(vector <string> vectorTest);
void allocateHouses(vector <string> vectorHouse);
};
void dataInfo::testClasses(vector <string> vectorTest)
{
vectorData = vectorTest;
dataInfo* testPointer = new dataInfo;
testPointer->allocateHouses(vectorData[0]); //ERROR IS HERE
}
void dataInfo::allocateHouses(vector <string> vectorHouse)
{
stringstream ss;
ss.str(vectorHouse);
while (ss >> idNumber >> houseFirst)
{
idVector.push_back(idNumber);
houseVector.push_back(houseFirst);
}
for (int i = 0; i < idVector.size(); i++)
{
cout << idVector[i] << " " << houseVector[i] << endl;
}
}
答案 0 :(得分:0)
allocateHouse
期望一个std::vector<std::string>
,但是由于您是通过vectorData[0]
传递向量的第一个元素,因此您只传递了std::string
。
我假设您只想在此处接受std::string
。
还有一些关于不必要的副本和不必要的new
使用的问题。