小问题:copy(v.begin(),v.end(),u.end());
题目是这样的 它问vector<int> v(10,100);
vector<int> u;
copy(v.begin(),v.end(),u.begin());
就是把v复制到u里拉
但我写
#include<iostream>
#include<vector>
#include<algorithm>
#include<iterator>
using namespace std;
int main()
{
vector<int> v(10,100);
vector<int> u;
copy(v.begin(),v.end(),u.begin());
vector<int>::iterator it=u.begin();
for(;it!=u.end();it++)
{
cout<<*it<<endl;
}
return 0;
}
我想结果是10个100,但运行后出错,别人告诉我是,但u没有足够空间
要我用使用插入迭代器,我把u.begin()换成back_inserter(u)后运行成功了
但我还是不懂为什么u没有足够空间,是从u.begin()开始插入啦,难道u的空间是0?
还有,如果我非要用题目中的那段程序写应该怎样写呢??