| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1186 人关注过本帖
标题:小问题:copy(v.begin(),v.end(),u.end());
只看楼主 加入收藏
longlao
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-1-2
收藏
 问题点数:0 回复次数:3 
小问题: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
renhao153
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-11-10
收藏
得分:0 
你所定义的u是初始值为NULL的VECTOR<INT>能用*.INSERT(P,B,E)的方法插入或者是调整vector<int> u容器的大小 u.resize(10)在用copy()的方法你试一下
2008-09-06 22:34
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
原因,就是 vector<int> u;
u默认初始化为空啊....
copy()时必须保证u的空间不小于v的...否则就是个运行错误...
你设一下u的大小,或简单地给个初值,像这样,    vector<int> u(10,0);
就好了...

2008-09-07 12:05
longlao
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-1-2
收藏
得分:0 
谢谢
2008-09-11 22:41
快速回复:小问题:copy(v.begin(),v.end(),u.end());
数据加载中...
 
   



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

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