C++ set迭代器(STL set迭代器)详解
2023-06-13 09:11:55 时间
set T 容器的成员返回的迭代器都是双向迭代器。这些迭代器的类型的别名定义在 set T 模板中,可以从 set 中得到类型别名有 iterator、reverse_iterator、const_iterator、 const_reverse_iterator,从它们的名称就可以看出它们的类型。例如:
然而,set 容器的迭代器类型的别名有时会让人产生一些误解。所有 set T 容器的成员函数返回的迭代器都指向 const T 类型的元素。因此,iterator 迭代器会指向 const 元素, reverse_iterator 和其他类型的迭代器也是如此。这意味着我们不能修改元素。如果想要修改 set 容器中的元素,必须先删除它,然后再插入修改后的版本。
仔细思考一下,其实这是不合理的。set 中的对象以它们自己作为键,对象在容器中的位置是通过比较对象决定的。如果可以修改元素,元素的顺序就失效了,也会扰乱后面的访问操作。、
当必须修改元素而且仍然需要将它们组合到一个或多个 set 容器中时,还有一个方法可以做到这一点。可以在 set 容器中保存指针,并且最好选择智能指针。当使用 set 容器时,通常会在它们中保存 shared_ptr T 或 weak_ptr T 对象。
在 set 容器中保存 unique_ptr T 对象没有多少意义。因为容器中不存在和 unique_ptr T 对象匹配的独立键,所以我们从来不会直接检索元素。
21755.html
相关文章
- 女朋友要去面试 C++,我建议她这么做
- EasyC++01,从C++示例程序说起
- EasyC++11,常用字符串函数大全
- java set 排序的_Set集合排序
- C++ 字符串转时间 与 时间转转字符串[通俗易懂]
- Mysql Connector C++ 在VS2008下编译[通俗易懂]
- C/C++ Qt 基本文件读写方法
- C++学习路线
- 【C++】红黑树封装实现 map 和 set
- c++基础篇之C++ 模板
- 开心档之C++ 指针
- C++/Php/Python 语言执行shell命令详解编程语言
- C++ set(STL set)容器是什么
- C++ set用法(STL set用法)详解
- C++ unordered_set定义及初始化详解
- C++异常处理机制
- MySQL中如何设置变量使用SET语句(mysql 中set变量)
- 使用C和MySQL创建强大的程序函数(c++ mysql 函数)
- 红色梦幻搭建Redis集群模式SET(redis集群模式set)
- Redis策略中的随机取Set精髓(redis随机取set)
- Oracle中掌握SET语句让你如虎添翼(oracle中set语句)
- Redis中Set值重复的检测方式(redis重复set)
- Oracle Set用法概述快速上手(oracle set用法)
- Oracle SET日期 驾驭时间,管理数据(oracle set日期)
- c++冒泡排序示例分享
- VisualC++程序设计中WindowsGDI贴图闪烁的解决方法