// 基于 d3.cpp 的改进 // vector 存放对象的指针 #include using namespace std; class Student { friend ostream &operator<<(ostream &out, const Student *stu); private: string name; int age; public: Student(const string &name, int age) { this->name = name; this->age = age; } }; ostream &operator<<(ostream &out, const Student *stu) { out << "name: " << stu->name << ", age: " << stu->age; return out; } int main() { vector v; v.push_back(new Student("张三", 18)); v.push_back(new Student("李四", 19)); v.push_back(new Student("王五", 20)); v.pop_back(); // 删除最后一个元素 // 创建迭代器 vector::iterator it = v.end(); while (it != v.begin()) { it--; cout << *it << endl; // 重载了<<运算符 delete *it; // 释放空间 } return 0; }