读书人

请教一下 小弟我调用这个函数的方法那

发布时间: 2012-03-25 20:55:16 作者: rapoo

请问一下 我调用这个函数的方法那里错了
书上有个费波那契函数,然后我用了两种方法调用它,
第一种行的通,第二种却不行.
我觉得第二种好象也可以,为什么不行呢?
#include <vector>
#include <iostream>
using namespace std;
//下面是提供的函数
const vector <int> * fibon_seq(int size)
{
const int max_size=1024;
static vector <int> elems;

if(size <=0||size> max_size)
{
cerr < < "fibon_seq();oops:invalid size: " < <size < < "--can 't fulfill request.\n ";
return 0;
}
for(int ix=elems.size();ix <size;++ix)
{
if(ix==0||ix==1)
elems.push_back(1);
else elems.push_back(elems[ix-1]+elems[ix-2]);

}
return &elems;
}
//下面是第一种 我用const_iterator 的迭代器依次调用,可以
int main()
{
const vector <int> * pvec;
int n;
cout < < "Please input a number: " < <endl;
cin> > n;
pvec=fibon_seq(n);

for(vector <int> ::const_iterator iter=pvec-> begin();iter!=pvec-> end();iter++)
cout < <*iter < <endl;


return 0;

}


这是第二种,这种编译通不过,但是我想知道如果用这种方法调用,正确的格式怎样写,谢谢!
int main()
{
const vector <int> * pvec;
int n;
cout < < "Please input a number: " < <endl;
cin> > n;
pvec=fibon_seq(n);

for(int index=0;index!=pvec-> size();pvec++)
{
cout < <*pvec;
}
return 0;

}


[解决办法]
const vector <int> * pvec;
这个可是指向vector <int> 的对象,可不是迭代器其++运算就是指针++运算,当然错!
[解决办法]
指向vector的指针与迭代器还是有差别的。

读书人网 >C++

热点推荐