读书人

关于vector

发布时间: 2012-03-20 14:01:11 作者: rapoo

关于vector,高手进
int main()
{
vector<int> a;
for(int x=0;x!=10;x++){a.push_back(x);}
cout<<a<<endl;
}
请问下为什么不能这样输出呢?显示cout<<a<<endl;这里出错,不能这样把a中全部元素输出吗

[解决办法]
楼上说的对,和int a[10]一样,不能这样cout<<a;
得for(vector<int>::size_type i=0;i!=a.size();++i)
{
cout<<a[i]<<" ";
}
cout<<endl;
或者用迭代器:
for(vector<int>::iterator iter=a.begin();iter!=a.end();++iter)
{
cout<<*iter<<" ";
}
cout<<endl;
[解决办法]
容器vector中,没有实现重载输出操作符,所以不能直接输出,要一个一个的输出,可以用下标也可以用迭代器;下面是下标实现:

C/C++ code
#include <vector>#include <iostream>using std::vector;using std::cout;using std::endl;int main(){vector<int> a;for(int x=0;x!=10;x++){a.push_back(x);}for(int x = 0; x != a.size();++x)cout<<a<< " ";cout << endl;return 0;} 

读书人网 >C++

热点推荐