64,636
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <vector>
#include <algorithm>
#include "print.h"
using namespace std;
int main()
{
vector<int> coll;
back_insert_iterator<vector<int> > iter(coll);
*iter = 1;
++iter;
*iter = 2;
++iter;
*iter = 3;
PRINT_ELEMENTS(coll);
back_inserter(coll) = 44;
back_inserter(coll) = 55;
PRINT_ELEMENTS(coll);
coll.reserve(2*coll.size());
copy(coll.begin(), coll.end(), back_inserter(coll));//这里出错,
//如果back_inserter插入其他,比如coll2,另外一个vector的就正常,怎么回事?VS又不按标准办事么?
PRINT_ELEMENTS(coll);
return 0;
}
#include <iostream>
template <class T>
inline void PRINT_ELEMENTS(const T& coll, const char* optcstr="")
{
typename T::const_iterator pos;
std::cout<<optcstr;
for(pos=coll.begin();pos!=coll.end();++pos){
std::cout<<*pos<<" ";
}
std::cout<<std::endl;
}