首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-25 
请问一下 我调用这个函数的方法那里错了书上有个费波那契函数,然后我用了两种方法调用它,第一种行的通,第

请问一下 我调用这个函数的方法那里错了
书上有个费波那契函数,然后我用了两种方法调用它,
第一种行的通,第二种却不行.
我觉得第二种好象也可以,为什么不行呢?
#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的指针与迭代器还是有差别的。

热点排行