为了账号安全,请及时绑定邮箱和手机立即绑定

c++迭代器的问题

c++迭代器的问题

C C++
Leo_clip 2017-03-21 22:57:42
#include<iostream> #include<list> #include<cstring> using namespace std; class worker{ char name[10]; int age; double salary; public: worker(int a=0,char *p="noname",double c=0) { age=a; char *p1=new char[sizeof(p)+1]; strcpy(name,p1); } void setdata(char *name,int age,double wage); void display(); friend ostream& operator<<(ostream &os,worker &s); }; void worker::display() { cout<<name<<" "<<age<<" "<<salary; } ostream& operator<<(ostream &os,worker &s) { os<<s.age<<" "<<s.name[10]<<" "<<s.salary; return os; } int main() { worker a[6]; a[0]=worker (1,"a",3); a[1]=worker (4,"b",6); a[2]=worker (7,"c",9); a[3]=worker (1,"d",3); a[4]=worker (4,"e",6); a[5]=worker (7,"f",9); list<worker> l1,l2,l3; for(int i=0;i<3;i++) { l1.push_back(a[i]); }  for(int j=3;j<6;j++) { l2.push_back(a[j]); } list<woker>::iterator iter; for(iter=l1.begin();iter!=l1.end();iter++) { cout<<*iter<<"\t"; } for(iter=l2.begin();iter!=l2.end();iter++) { cout<<*iter<<"\t"; } l1.merge(l2); for(iter=l1.begin();iter!=l1.end();iter++) { cout<<*iter<<"\t"; } return 0; }报错跳到另一个文件的这一行   if (*__first2 < *__first1)      { iterator __next = __first2; _M_transfer(__first1, __first2, ++__next); __first2 = __next;      }    else      ++__first1;  if (__first2 != __last2)    _M_transfer(__last1, __first2, __last2); }我也看不懂什么意思,求解
查看完整描述

1 回答

?
wDan_9527

TA贡献13条经验 获得超15个赞

是哪一行报错了?这是跳到函数内部了

查看完整回答
反对 回复 2017-08-02
  • 1 回答
  • 0 关注
  • 1379 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信