从文本文件数据创建对象。没有可行的重载 '=' 错误
creating objects from text file data. no viable overloaded '=' error
我基本上是在尝试对文件中的字符串进行标记化,并使用标记作为对象的参数来创建对象。
我需要能够为文件中的每一行创建一个新对象。
但我收到错误消息 no viable overloaded '='
string tokens[8];
int i =0;
int j=0;
vector<Package *> myPack[5];
while (file.good()){
getline(file,buffer);
cout<< buffer<< endl;
string token, text(buffer);
istringstream iss(text);
cout <<endl;
while (getline(iss, token, '|')){
cout << token << endl;
tokens[i]=token;
i++;
}
myPack[0] = new Package(tokens[0] ,tokens[1],tokens[2],tokens[3], stod(tokens[4]), stod(tokens[5]));
j++;
}
此处出现错误
myPack[0] = new Package(tokens[0] ,tokens[1],tokens[2],tokens[3], stod(tokens[4]), stod(tokens[5]));
您的 myPack
向量的长度为 0,因此 myPack[0]
(访问向量中的第一个元素)是一个错误。
您必须 push_back
您的包对象才能插入它。
vector<Package *> myPack[5];
是五个(空)向量的数组,而不是具有五个 Package*
元素的向量。
后者看起来像vector<Package *> myPack(5);
。
我基本上是在尝试对文件中的字符串进行标记化,并使用标记作为对象的参数来创建对象。
我需要能够为文件中的每一行创建一个新对象。
但我收到错误消息 no viable overloaded '='
string tokens[8];
int i =0;
int j=0;
vector<Package *> myPack[5];
while (file.good()){
getline(file,buffer);
cout<< buffer<< endl;
string token, text(buffer);
istringstream iss(text);
cout <<endl;
while (getline(iss, token, '|')){
cout << token << endl;
tokens[i]=token;
i++;
}
myPack[0] = new Package(tokens[0] ,tokens[1],tokens[2],tokens[3], stod(tokens[4]), stod(tokens[5]));
j++;
}
此处出现错误
myPack[0] = new Package(tokens[0] ,tokens[1],tokens[2],tokens[3], stod(tokens[4]), stod(tokens[5]));
您的 myPack
向量的长度为 0,因此 myPack[0]
(访问向量中的第一个元素)是一个错误。
您必须 push_back
您的包对象才能插入它。
vector<Package *> myPack[5];
是五个(空)向量的数组,而不是具有五个 Package*
元素的向量。
后者看起来像vector<Package *> myPack(5);
。