本篇文章主要介绍了"实战c++中的vector系列--copy set to vector别混淆了reserve和resize",主要涉及到Iterator,迭代器方面的内容,对于其他编程jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
stl算法中有个copy函数,我们可以轻松的写出这样的代码:#include #include
stl算法中有个copy函数,我们可以轻松的写出这样的代码:
#include #include #include usingnamespacestd;
int _tmain(int argc, _TCHAR* argv[])
{
double darray[10]={1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9};
vector<double> vdouble(10);
vector<double>::Iterator outputIterator=vdouble.begin();
copy(darray,darray+10,outputIterator);
while(outputIterator!=vdouble.end())
{
cout<<*outputIterator<Iterator++;
}
getchar();
return0;
}
于是你想使用copy来set to vector,于是你这样写道:
#include#include#includeint main()
{
std::set <double> input;
input.insert(5);
input.insert(6);
std::vector <double> output;
std::copy(input.begin(), input.end(), output.begin());
return0;
}
编译通过,运行的时候出现错误。
why?
方法一
如果你在定义output的时候,指定其大小,错误就会消失: