C++容器和函数对象详解:vector、set、map的声明和遍历

版权申诉
0 下载量 65 浏览量 更新于2024-08-26 收藏 89KB PDF 举报
C++ 容器和函数对象(仿函数) 在 C++ 中,容器是一种数据结构,用于存储和管理数据。常用的容器有 vector、set、map 等。函数对象(仿函数)是 C++ 中的一种特殊类型的对象,行为类似函数,但可以像对象一样被实例化和传递。 **vector 容器** vector 是一种可变大小的数组,用于存储元素。它提供了多种操作,例如 push_back、insert、erase 等。vector 的声明方式为 `vector<类型> 变量名;`,例如 `vector<int> vec;`。 在上面的代码中,展示了如何使用 vector 容器。首先,定义了三个 vector 容器 `v1`、`v2`、`v3`,然后将它们 push_back 到一个大 vector 容器 `vec` 中。接着,使用迭代器遍历大 vector 容器,输出每个小 vector 容器中的元素。 **set 容器** set 是一种集合,用于存储不重复的元素。set 的声明方式为 `set<类型> 变量名;`,例如 `set<int> s;`。set 提供了多种操作,例如 insert、erase 等。 **map 容器** map 是一种关联容器,用于存储键值对。map 的声明方式为 `map<键类型,值类型> 变量名;`,例如 `map<int, int> m;`。map 提供了多种操作,例如 insert、erase 等。 在上面的代码中,展示了如何使用 map 容器。首先,定义了一个 map 容器 `map1`,然后使用迭代器遍历 map 容器,输出每个键值对。 **函数对象(仿函数)** 函数对象(仿函数)是一种特殊类型的对象,行为类似函数,但可以像对象一样被实例化和传递。函数对象可以作为算法的参数,例如 sort、find 等算法。 在上面的代码中,展示了如何使用函数对象。定义了一个函数对象 `MyCompare`,它重载了 `()` 运算符,以便比较两个整数的大小。然后,使用这个函数对象来排序一个 set 容器。 **嵌套容器** 嵌套容器是指一个容器中包含另一个容器。例如,一个 vector 容器中包含多个小 vector 容器。在上面的代码中,展示了如何使用嵌套容器。定义了一个大 vector 容器 `vec`,然后将三个小 vector 容器 `v1`、`v2`、`v3` push_back 到大 vector 容器中。 **遍历容器** 遍历容器是指遍历容器中的每个元素。有多种遍历容器的方式,例如使用迭代器、使用 auto关键字等。在上面的代码中,展示了如何使用迭代器遍历容器,也展示了如何使用 auto 关键字遍历容器。 C++ 容器和函数对象(仿函数)是 C++ 编程中非常重要的概念。掌握这些概念,可以更好地使用 C++ 语言开发高效、可靠的程序。