【发布时间】:2019-02-21 12:32:20
【问题描述】:
出现一个错误,不允许我使用指针将 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;
}
}
【问题讨论】:
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建minimal reproducible example。
-
什么是vectorData,它是如何声明的?我怀疑是
std::vector<std::vector<something>> -
您向我们提供了代码并省略了最关键的细节:vectorData 的声明。请修复您的代码示例
-
@Arkadiy 问题已解决。正在将向量的第一个元素传递给另一个向量字符串,而我只需要传递一个“std::string”。