返回信息流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;
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #80142同步于 2014/6/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
c++中vector调用了reserve函数,之后调用copy
duni
2014/6/6镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
问题出在reserve上。vector的reserve增加了vector的capacity,但是size没有改变。 reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素,你这里的v1.begin()和v1.end()是相等的。
【 在 gdl 的大作中提到: 】
: 问题出在reserve上。vector的reserve增加了vector的capacity,但是size没有改变。 reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素,你这里的v1.begin()和v1.end()是相等的。
额,,,好吧,,,看来我对reserve的理解有点偏差,Thanks
【 在 guoxiangonly 的大作中提到: 】
: vector<int> v={1,2,3,4,5,6}; 这种初始化方式不对吧!!!
c++11中支持列表初始化
发自「贵邮」