注册 登录
编程论坛 C++教室

简单C++错误求助

DG中专生 发布于 2007-11-27 20:55, 521 次点击
#include<iostream>
#include<vector>
using namespace std;
int main()
{
 vector<int> b;
 vector<int> f(9,9);
  for(vector<int>::iterator x=f.begin();x!=f.end();++x)
    b.push_back(f[*x]);
 cout<<b<<endl;
 return 0;
}



F:\VC6.0++\Microsoft Visual Studio\Common\MSDev98\Bin\7.cpp(10) : error C2679: binary '<<' : no operator defined which takes a right-hand operand of type 'class std::vector<int,class std::allocator<int> >' (or there is no acceptable conversion)
执行 cl.exe 时出错.
错在哪里,谢谢
3 回复
#2
eagleboycn2007-11-27 21:02
b是vector不能这么输出吧?
应该再用一个迭代器之类吧
#3
DG中专生2007-11-27 21:13
#include<iostream>
#include<vector>
using namespace std;
int main()
{
    vector<int> b;
    vector<int> f(9,9);
     for(vector<int>::iterator x=f.begin();x!=f.end();++x)
    b.push_back(f[*x]);
    for(vector<int>::iterator v=b.begin();v!=b.end();++v)
        cout<<*v;
    return 0;
}

为什么结果不是vector类型f复制给了vector类型b的?
最后结果怎么不对,求助...
#4
DG中专生2007-11-27 21:16
#include<iostream>
#include<vector>
using namespace std;
int main()
{
    vector<int> b;
    vector<int> f(9,9);
     for(vector<int>::size_type x=0;x!=f.size();++x)
    b.push_back(f[x]);
    for(vector<int>::iterator v=b.begin();v!=b.end();++v)
        cout<<*v;
    return 0;
}

已经解决了
1