标题:小问题:copy(v.begin(),v.end(),u.end());
取消只看楼主
longlao
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-1-2
 问题点数:0 回复次数:1 
小问题: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?
还有,如果我非要用题目中的那段程序写应该怎样写呢??
搜索更多相关主题的帖子: begin end 
2008-09-05 21:41
longlao
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-1-2
得分:0 
谢谢
2008-09-11 22:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-231662-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.098891 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved