#include // 引入输入输出流库 #include // 引入向量库 #include // 引入栈库 #include // 引入队列库 #include // 引入链表库 #include // 引入映射库 #include // 引入算法库

using namespace std; // 使用标准命名空间

bool cmp(const int &val) // 定义一个函数cmp,比较传入的值是否等于20 { return val == 20; }

class Cmp // 定义一个类Cmp { public: Cmp(int val = 0) : m_val(val) {} // 构造函数,初始化m_val为传入的值 bool operator()(const int &value) { // 重载()运算符,比较传入的值是否等于m_val return m_val == value; } private: int m_val; // 私有成员变量m_val };

int main() // 主函数 { // vector< vector > vec; // 定义一个二维向量 list lst; // 定义一个链表 lst.push_back(10); // 在链表末尾插入10 lst.push_front(20); // 在链表头部插入20 lst.push_front(30); // 在链表头部插入30 lst.push_front(40); // 在链表头部插入40 list::iterator iter = lst.begin(); // 定义一个链表迭代器,指向链表的第一个元素 //lst.remove(30); // 删除链表中的所有值为30的元素 //lst.remove_if(cmp); // 删除链表中满足cmp条件的元素 //Cmp foo(30); // 创建一个Cmp对象,传入的值为30 //lst.remove_if(foo); // 删除链表中满足foo条件的元素 //lst.erase(iter); // 删除链表中迭代器指向的元素 //for(iter = lst.begin(); iter != lst.end(); iter++) { // 遍历链表 //iter = lst.erase(iter); // 删除链表中迭代器指向的元素,并返回下一个元素的迭代器 for(iter; iter != lst.end(); ) { // 遍历链表 if(30 == *iter) { // 如果迭代器指向的元素的值为30 //iter = lst.erase(iter); // 删除链表中迭代器指向的元素,并返回下一个元素的迭代器 lst.erase(iter++); // 删除链表中迭代器指向的元素,并返回下一个元素的迭代器 }else { iter++; // 迭代器指向下一个元素 } } // lst.reverse(); // 反转链表 lst.sort(); // 对链表进行排序 for(iter = lst.begin(); iter != lst.end(); iter++) { // 遍历链表 cout << *iter << " " << endl; // 输出元素的值 } cout << endl; // 输出一个空行 return 0; // 返回0表示程序正常结束

#include iostream#include vector#include stack#include queue#include list#include map#include algorithmusing namespace std;bool cmpconst int &val	return val == 20;class Cmppublic	Cmpint val = 0 m_val

原文地址: https://www.cveoy.top/t/topic/iOah 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录