为什么我会"No viable conversion from 'vector<Country>' to 'int'"?
Why am I getting "No viable conversion from 'vector<Country>' to 'int'"?
我真的不确定为什么会收到这个错误。我试过用谷歌搜索,但没有得到最好的结果。。。如果有人能告诉我为什么我会出现这个错误:
No viable conversion from 'vector<Country>' to 'int'
int main()
{
vector<Country> readCountryInfo(const string& filename);
// Creating empty vector
vector<Country> myVector;
// Opening file
ifstream in;
in.open("worldpop.txt");
if (in.fail()) {
throw invalid_argument("invalid file name");
}
while (in) {
char buffer; // Character buffer
int num; // Integer to hold population
string countryName; // Add character buffer to create name
while (in.get(buffer)) {
// Check if buffer is a digit
if (isdigit(buffer)) {
in.unget();
in >> num;
}
// Check if buffer is an alphabetical character
else if (isalpha(buffer) || (buffer == ' ' && isalpha(in.peek()))) {
countryName += buffer;
}
// Checking for punctuation to print
else if (ispunct(buffer)) {
countryName += buffer;
}
// Check for new line or end of file
else if (buffer == 'n' || in.eof()) {
// Break so it doesn't grab next char from inFile when running loop
break;
}
}
Country newCountry = {countryName, num};
myVector.push_back(newCountry);
}
return myVector;
}
上面写着
int main()
main
返回一个int
,因为标准要求它返回。
然后,在最后,你说
return myVector;
而myVector
是不能转换为int
的vector<Country>
因此出现了错误消息。
我怀疑,根据的声明
vector<Country> readCountryInfo(const string& filename);
对于确实返回vector<Country>
的函数,您本打算在名为"readCountryInfo"的函数中编写代码,但不知怎的,却把它写错了地方。
int main()
应该返回int,而不是myVector
(代码的最后一行)。
在c++中,main返回一个int,通常为零。
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- 如何显式调用运算符<<
- 模板操作员&lt;未打电话
- C / CUDA中的模板方法是3个角括号(&lt;&lt;&lt;)
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- 错误:调用"std::vector<:vector<int>>::p ush_back(std::vector<std::__cxx11::basic_string<
- C 建造者Clang STD :: Sill,找不到超载的操作员&lt;
- 为什么STD :: MAP需要操作员&lt;以及我如何写一个
- 为什么“操作员”需要const但不是为“运营商&lt;”
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- C :对矢量进行排序&lt; struct&gt;(结构有2个整数)基于结构的整数之一
- 明确的专业化“ CheckIntmap&lt;&gt;”实例化
- 什么是模板&lt;&gt;inline bla bla
- 左角支架解释为操作员&lt;而不是模板参数
- 编辑C Qlist&lt; object*&gt; gt;QML代码和一些QML警告中的模型
- 超载操作员&lt;&lt; - 必须是二进制操作员
- 没有匹配的“运营商&lt;&lt;”