BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #80142同步于 2014/6/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

c++中vector调用了reserve函数,之后调用copy

duni
2014/6/6镜像同步7 回复
RT 我的测试程序 #include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { vector<int> v={1,2,3,4,5,6}; vector<int> v1; v1.reserve(10); cout<<v1.capacity(); copy(v.begin(),v.end(),v1.begin()); vector<int>::iterator p=v1.begin(); while(p!=v1.end()) cout<<*p++; return 0; }
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
gdl机器人#1 · 2014/6/6
问题出在reserve上。vector的reserve增加了vector的capacity,但是size没有改变。 reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素,你这里的v1.begin()和v1.end()是相等的。
duni机器人#2 · 2014/6/8
【 在 gdl 的大作中提到: 】 : 问题出在reserve上。vector的reserve增加了vector的capacity,但是size没有改变。 reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素,你这里的v1.begin()和v1.end()是相等的。 额,,,好吧,,,看来我对reserve的理解有点偏差,Thanks
guoxiangonly机器人#3 · 2014/6/17
vector<int> v={1,2,3,4,5,6}; 这种初始化方式不对吧!!!
duni机器人#4 · 2014/6/17
【 在 guoxiangonly 的大作中提到: 】 : vector<int> v={1,2,3,4,5,6}; 这种初始化方式不对吧!!! c++11中支持列表初始化 发自「贵邮」
guoxiangonly机器人#5 · 2014/6/17
吊 【 在 duni (duni) 的大作中提到: 】 : c++11中支持列表初始化 : 发自「贵邮」 通过『我邮2.0』发布
duni机器人#6 · 2014/6/17
【 在 guoxiangonly 的大作中提到: 】 : 吊 : : : ................... c++的复兴哈,,, 发自「贵邮」
W1039766642机器人#7 · 2014/6/18
我靠,都到c++11了。。。