C++报错原因汇总 Q1:为什么error: 'class std::queue<Person>' has no member named 'pop_back? 问题 #include <queue> #include <string> #include <stack> #include <iostream> using namespace std; class Person { public: Person():m_name("null"), m_age(-1){} Person(string name, int age):m_name(name), m_age(age) {} string m_name; int m_age; }; //person对象的<< 运算符重载 ostream& operator << (ostream &out, Person &p) { out << "姓名:" << p.m_name << "\t年龄:" << p.m_age; return out; } void MyPrint(queue<Person> &t) { int temp_num = t.size(); for(int i = 0; i < temp_num; i++) { cout << t.front() << endl; //不能是back() t.pop(); //从队头删除一个元素 } } void MyPrint(stack<Person, queue<Person>> &t) { int temp_num = t.size(); for(int i = 0; i < temp_num; i++) { cout << t.top() << endl; t.pop(); } } // error: 'class std::queue<Person>' has no member named 'pop_back' c.pop_back(); // 明白为什么错了,因为stack因为