关于copy_backward算法的有关问题
关于copy_backward算法的问题
想用copy_backward算法把数组a里的内容反向存到向量c中,
int main()
{int a[]={1,2,3,4,5,6,7,8,9,10};
vector <int> c(10);
copy_backward(a,a+10,c.begin());
copy(c.begin(),c.end(),ostream_iterator <int> (cout, " "));
return 0;
}
输出结果应该为:10 9 8 7 6 5 4 3 2 1,可实际上都是0,不知道为什么?
------解决方案--------------------
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
vector <int> vec(10);
copy_backward(arr,arr+10,vec.begin()+10);
copy(vec.begin(),vec.end(),ostream_iterator <int> (cout, " "));
cout < <endl;
system( "PAUSE ");
return 0;
}
//copy_backward只是从后向前copy最后完成的功能和copy是一样的.
------解决方案--------------------
用STL的话,还是应该在手头备一本《STL源码剖析》的
------解决方案--------------------
copy_backward(a,a+10,c.begin()+10);
想用copy_backward算法把数组a里的内容反向存到向量c中,
int main()
{int a[]={1,2,3,4,5,6,7,8,9,10};
vector <int> c(10);
copy_backward(a,a+10,c.begin());
copy(c.begin(),c.end(),ostream_iterator <int> (cout, " "));
return 0;
}
输出结果应该为:10 9 8 7 6 5 4 3 2 1,可实际上都是0,不知道为什么?
------解决方案--------------------
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
vector <int> vec(10);
copy_backward(arr,arr+10,vec.begin()+10);
copy(vec.begin(),vec.end(),ostream_iterator <int> (cout, " "));
cout < <endl;
system( "PAUSE ");
return 0;
}
//copy_backward只是从后向前copy最后完成的功能和copy是一样的.
------解决方案--------------------
用STL的话,还是应该在手头备一本《STL源码剖析》的
------解决方案--------------------
copy_backward(a,a+10,c.begin()+10);