C++的高手们,麻烦帮忙啊~~

ivy_yang ivy_yang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
刚开始学c++,在essential C++第2章的习题中,发现原答案不能编译,原代码是这样:
#include<vector>
#include<string>
#include<iostream>

using namespace std;

bool calc_elements(vector<int> &vec,int pos);
void display_elems(vector<int> &vec,const string &title,ostream &os=cout);

int main()
{
vector<int> pent;
const string title("pentagonal numeric series");

if(calc_elements(pent,0))
display_elems(pent,title);

if(calc_elements(pent,8))
display_elems(pent,title);

if(calc_elements(pent,14))
display_elems(pent,title);

if(calc_elements(pent,138))
display_elems(pent,title);
}

bool calc_element(vector<int> &vec,int pos)
{
if(pos<=0 || pos>64)
{
cerr<<"sorry. invalid position:"<<pos<<endl;
return false;
}
for(int ix=vec.size()+1;ix<=pos;++ix)
vec.push_back((ix*(3*ix-1))/2);
return true;
}

void display_elems(vector<int> &vec,const string &title,ostream &os)
{
os<<'\n'<<title<<"\n\t";
for(int ix=0;ix<vec.size();++ix)
os<<vec[ix]<<' ';
os<<endl;
}

错误是这样的:
...全文
评论 7
收藏 已收藏
分享
返回顶部
ivy_yang
C++ 语言 65,214 成员 250,514 内容