2 boblink boblink 于 2015.06.10 23:30 提问

STL inserter插入器插入过程
c++

#include
#include
#include

using namespace std;
int main()
{
listlst;
for(int i=1;i lst.push_back(i);
listlst2;
copy(lst.begin(),lst.end(),inserter(lst2,lst2.begin()));
cout<<"lst2:begin(): ";
for(auto it=lst2.begin();it!=lst2.end();it++)
cout<<*it<<ends;
cout<<endl;
system("pause");
}
为何输出为1 2 3 4而不是4 3 2 1,不是说inserter插入器要把元素插在第二个参数指定的元素之前么?
本人理解一是第一次插入结果1,第二次应该为2,1...故有上述问题
二是inserter插入器调用了insert(p,b,e)版本,则无此问题
求大神解疑

2个回答

lzp_lrp
lzp_lrp   Ds   Rxr 2015.06.11 08:34

push_bach函数:
函数原型:
iterator push_bash();
功能:在容器的尾端插入一个数据

楼主的这段代码好像问题比较多,编译肯定会出错


#include
#include
#include
using namespace std;
int main()
{
    list lst;
    for(int i=1;i lst.push_back(i);
    list lst2;
    copy(lst.begin(), lst.end(), inserter(lst2,lst2.begin()));
    cout << "lst2:begin(): ";

    for(auto it=lst2.begin();it!=lst2.end();it++)
    cout << *it << ends;

    cout << endl;
    system("pause");
}

boblink
boblink 粘贴出了点错
2 年多之前 回复
oyljerry
oyljerry   Ds   Rxr 2015.06.11 10:41
Csdn user default icon
上传中...
上传图片
插入图片