使用指针C指示Vector的索引

时间:2019-02-21 12:32:20

标签: c++ pointers vector

出现一个错误,该错误不允许我使用指针将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;
    }
} 

1 个答案:

答案 0 :(得分:0)

allocateHouse期望一个std::vector<std::string>,但是由于您是通过vectorData[0]传递向量的第一个元素,因此您只传递了std::string
我假设您只想在此处接受std::string
还有一些关于不必要的副本和不必要的new使用的问题。