gpt4 book ai didi

c++ - 没有匹配的调用函数

转载 作者:行者123 更新时间:2023-11-30 04:34:32 25 4
gpt4 key购买 nike

我得到了这个方法,我从文件中获取用户数据行,然后将这些行拆分为多个部分,然后将这些部分放入不同的字符串中。最后,我创建了一个新的用户对象并将该用户对象添加到另一个名为用户的 vector 中。

void userdata::importData(string fname)
{
g_string g;
filename= fname;
string line;
ifstream file(filename.c_str());
vector<string> parts;
while ( file.good() )
{
getline (file,line);
g.split(',', line);
vector<string>::iterator i;

for(i = parts.begin(); i < parts.end(); i++)
{
string usernr = parts.at(0);
string name = parts.at(1);
string gender = parts.at(2);
string age = parts.at(3);
string profession = parts.at(4);
string email = parts.at(5);

user user(usernr , name , gender , age , profession , email );
users.push_back(user);
}
parts.clear();
}

file.close();
}

问题是我在将字符串设置为 parts.at(int)-value 的每一行上都收到此错误:

test.cpp: In method `void userdata::importData(class string)':
test.cpp:186: no matching function for call to `vector<basic_string<char
,string_char_traits<char>,__default_alloc_template<false,0> >,__default_alloc_te
mplate<false,0> >::at (int)'
test.cpp:187: no matching function for call to `vector<basic_string<char
,string_char_traits<char>,__default_alloc_template<false,0> >,__default_alloc_te
mplate<false,0> >::at (int)'
test.cpp:188: no matching function for call to `vector<basic_string<char
,string_char_traits<char>,__default_alloc_template<false,0> >,__default_alloc_te
mplate<false,0> >::at (int)'
test.cpp:189: no matching function for call to `vector<basic_string<char
,string_char_traits<char>,__default_alloc_template<false,0> >,__default_alloc_te
mplate<false,0> >::at (int)'
test.cpp:190: no matching function for call to `vector<basic_string<char
,string_char_traits<char>,__default_alloc_template<false,0> >,__default_alloc_te
mplate<false,0> >::at (int)'
test.cpp:191: no matching function for call to `vector<basic_string<char
,string_char_traits<char>,__default_alloc_template<false,0> >,__default_alloc_te
mplate<false,0> >::at (int)'

谁知道哪里出了问题?

最佳答案

std::vector::at() 采用 size_type 参数,该参数是无符号的。也许这行得通:

         string usernr = parts.at(0u);
string name = parts.at(1u);
string gender = parts.at(2u);
string age = parts.at(3u);
string profession = parts.at(4u);
string email = parts.at(5u);

关于c++ - 没有匹配的调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5924297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com