|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 VOGHOST 于 2019-6-24 20:25 编辑
期末作业遇到问题,有没有大佬帮忙看一下
这是简化后的代码
- #include<iostream>
- #include<algorithm>
- #include<vector>
- using namespace std;
- class A
- {
- protected:
- int a=5;
- };
- class B :public A
- {
- public:
- void SetA(int i) { a = i; }
- int GetA() { return a; }
- };
- class C
- {
- protected:
- int c=0;
- vector<A> a;
- public:
- void SetC(int i){ c = i;}
- int GetC() { return c;}
- };
- void insert(vector<B>& VB, vector<C>& VC)
- {
- C c;
- c.SetC(5);
- vector<B>::iterator ptr_b = VB.begin();
- vector<C>::iterator ptr_c = VC.begin();
- for (ptr_b; ptr_b < VB.end(); ptr_b++)
- {
- for (ptr_c; ptr_c < VC.end(); ptr_c++) //这里刚刚出现错误,手误打错了
- if ((*ptr_b).GetA() == (*ptr_c).GetC())
- break;
- if (ptr_c == VC.end())
- {
- c.SetC((*ptr_b).GetA());
- VC.push_back(c);
- }
- }
- }
- void fun(vector<B> &vb)
- {
- vector<C> vc;
- insert(vb, vc);
- vector<C>::iterator ptr_c = vc.begin();
- for (ptr_c; ptr_c < vc.begin(); ptr_c++)
- cout << (*ptr_c).GetC() << endl;
- }
- int main()
- {
- B b;
- vector<B> v_b;
- for (int i = 0; i < 5; i++)
- {
- b.SetA(i);
- v_b.push_back(b);
- }
- fun(v_b);
- cout << "done2";
- return 0;
- }
复制代码
类之间的关系:
错误
报出上面图片的错误,我想问下我是错在了哪里以及这个问题的原因是什么?
------------------------------刚刚上面打错了-------------------
上面注释的应该为- for (ptr_c; ptr_c < VC.end(); ptr_c++)
复制代码
但是迭代器的错误还是没有解决
|
|