
迭代器库
文章平均质量分 88
遗留输入迭代器 (LegacyInputIterator) 、遗留输出迭代器 (LegacyOutputIterator) 、遗留向前迭代器 (LegacyForwardIterator) 、遗留双向迭代器 (LegacyBidirectionalIterator) 、遗留随机访问迭代器 (Lega
繁星璀璨G
单身,求对象
展开
-
C++标准模板(STL)- 迭代器库 - 迭代器操作 - 返回指向容器或数组结尾的迭代器
返回指向给定容器 c 或数组 array 结尾(即最末元素的后一元素)的迭代器。这些模板依赖于拥有合理实现的 C::end() 。原创 2024-07-10 08:30:00 · 749 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 迭代器操作 - 返回指向容器或数组起始的迭代器
返回指向给定容器 c 或数组 array 起始的迭代器。这些模板依赖于拥有合理实现的 C::begin() 。原创 2024-07-09 08:30:00 · 724 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 迭代器操作 - 令迭代器自减
返回迭代器 it 的第 n 个前驱。原创 2024-07-08 08:30:00 · 421 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 迭代器操作 - 令迭代器自增
返回迭代器 it 的第 n 个后继。然而,若 InputIt 或 ForwardIt 还满足 遗留随机访问迭代器 (LegacyRandomAccessIterator) 的要求,则复杂度为常数。原创 2024-07-07 08:30:00 · 366 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 迭代器操作- 返回两个迭代器间的距离
返回从 first 到 last 的路程若 last 不可从 first 通过(可以重复)自增 first 抵达,则行为未定义。原创 2024-07-06 21:55:57 · 902 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 迭代器操作- 令迭代器前进给定的距离
增加给定的迭代器 it 以 n 个元素的步长。若 n 为负,则迭代器自减。该情况下, InputIt 必须满足遗留双向迭代器 (LegacyBidirectionalIterator) 的要求,否则行为未定义。原创 2024-07-05 08:30:00 · 1176 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 流迭代器- 写入 std::basic_streambuf 的输出迭代器(二)
若 failed() 返回 false ,则用 pbuf->sputc(c) 插入 c 到关联的输出流缓冲,其中 pbuf 是 streambuf_type* 类型的私有成员。否则,不做任何事。原创 2024-07-04 08:30:00 · 575 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 流迭代器- 写入 std::basic_streambuf 的输出迭代器(一)
std::ostreambuf_iterator 是单趟遗留输出迭代器 (LegacyOutputIterator) ,写入相继元素到为之创建迭代器的 std::basic_streambuf 对象。实际写操作在赋值给迭代器(无论是否解引用)时进行。自增 std::ostreambuf_iterator 是无操作。原创 2024-07-03 08:30:00 · 922 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 流迭代器- 从 std::basic_streambuf 读取的输入迭代器(三)
检查 *this 与 it 是否均合法或均非法,无关乎它们所用的流缓冲。检查 lhs 与 rhs 是否合法,或是否均为非法,无关乎它们所用的流缓冲区对象。1) 等价于 lhs.equal(rhs) 。2) 等价于 !lhs.equal(rhs) 。原创 2024-07-02 08:30:00 · 540 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 流迭代器- 从 std::basic_streambuf 读取的输入迭代器(二)
以调用 sbuf_->sgetc() 读取单个字符,其中 sbuf_ 是存储的指向流缓冲的指针。若迭代器是流尾迭代器则行为未定义。以调用 sbuf_->sbumpc() 推进迭代器,其中 sbuf_ 是存储的指向流缓冲的指针。若迭代器是流尾迭代器则行为未定义。原创 2024-07-01 08:30:00 · 728 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 流迭代器- 从 std::basic_streambuf 读取的输入迭代器(一)
std::istreambuf_iterator 是单趟迭代器,从为之构造迭代器的 std::basic_streambuf 对象读取相继字符。1) 构造流尾迭代器。2) 初始化迭代器并存储 is.rdbuf() 的值于数据成员。若 is.rdbuf() 为空,则构造流尾迭代器。3) 初始化迭代器并存储 s 的值于数据成员。若 s 为空,则构造流尾迭代器。4) 等效于以 p 所保有的 streambuf_type* 指针调用 (3) 。5) 复制构造函数为显式默认化。原创 2024-06-30 19:52:09 · 988 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 流迭代器- 写入 std::basic_ostream 的输出迭代器(二)
插入 value 到关联的流,然后插入分隔符,若在构造时指定它。不做任何事,提供此函数以满足遗留输出迭代器 (LegacyOutputIterator) 的要求。不做任何事。提供这些运算符以满足遗留输出迭代器 (LegacyOutputIterator) 的要求。它们使得表达式 *iter++=value 和 *++iter=value 可用于输出(插入)值到底层的流。原创 2024-06-29 23:30:11 · 1061 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 流迭代器- 写入 std::basic_ostream 的输出迭代器(一)
std::ostream_iterator 是单趟遗留输出迭代器 (LegacyOutputIterator) ,用 operator原创 2024-06-28 23:35:10 · 950 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 流迭代器- 从 std::basic_istream 读取的输入迭代器 (三)
检查 lhs 与 rhs 是否相等。二个流迭代器若均为流尾迭代器或均表示同一流则相等。1) 检查 lhs 是否等于 rhs 。2) 检查 lhs 是否不等于 rhs 。原创 2024-06-27 08:30:00 · 1141 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 流迭代器- 从 std::basic_istream 读取的输入迭代器 (二)
返回到当前元素的指针或引用。若迭代器是流尾迭代器则行为未定义。从底层流读值并存储它到迭代器对象。若读取失败,则迭代器变为流尾迭代器。若迭代器是流尾迭代器则行为未定义。原创 2024-06-26 08:30:00 · 743 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库 - 流迭代器- 从 std::basic_istream 读取的输入迭代器 (一)
std::istream_iterator 是单趟输入迭代器,从为之创建迭代器的 std::basic_istream 对象读取 T 类型的相继对象,通过调用适当的 operator>> 。实际读取操作在自增,而非解引用迭代器时进行。在构造迭代器时读取首个对象。解引用只返回最近读取的对象的副本。原创 2024-06-25 08:30:00 · 1826 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 创建拥有从实参推出的类型的 std::insert_iterator
inserter 是为容器 c 与其迭代器 i 构造 std::insert_iterator 的便利函数模板,拥有从参数类型推导的类型。原创 2024-06-24 08:30:00 · 400 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 用于插入容器的迭代器适配器 (二)
不做任何事,提供此函数以满足遗留输出迭代器 (LegacyOutputIterator) 的要求。它返回迭代器自身,这使得可以用诸如 *iter = value 的代码输出(插入)值到底层的容器。不做任何事。提供这些运算符以满足遗留输出迭代器 (LegacyOutputIterator) 的要求。它们使得表达式 *iter++=value 和 *++iter=value 可用于输出(插入)值到底层的容器。原创 2024-06-23 08:30:00 · 1317 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 用于插入容器的迭代器适配器 (一)
std::insert_iterator 是在提供的迭代器所指向的位置,插入元素到为之构造迭代器的容器的 遗留输出迭代器 (LegacyOutputIterator) 。凡在赋值给迭代器时(无论是否解引用)调用元素的 insert() 成员函数。自增 std::insert_iterator 是无操作。原创 2024-06-22 22:53:53 · 867 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 创建拥有从实参推出的类型的 std::front_insert_iterator
front_inserter 是为类型从参数类型推导的容器 c 构造 std::front_insert_iterator 的便利函数模板。原创 2024-06-21 08:30:00 · 441 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 用于在容器头部插入的迭代器适配器 (二)
不做任何事,提供此函数以满足遗留输出迭代器 (LegacyOutputIterator) 的要求。它返回迭代器自身,这使得可以用诸如 *iter = value 的代码输出(插入)值到底层的容器。不做任何事。提供这些运算符以满足遗留输出迭代器 (LegacyOutputIterator) 的要求。它们使得表达式 *iter++=value 和 *++iter=value 可用于输出(插入)值到底层的容器。原创 2024-06-20 08:30:00 · 833 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 用于在容器头部插入的迭代器适配器 (一)
std::front_insert_iterator 是前附元素到为之构造迭代器的遗留输出迭代器 (LegacyOutputIterator) 。凡在赋值给(无论是否解引用)迭代器时调用容器的 push_front() 成员函数。自增 std::front_insert_iterator 是无操作。原创 2024-06-19 08:30:00 · 1576 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 创建拥有从实参推出的类型的 std::back_insert_iterator
back_inserter 为容器 c 构造 std::back_insert_iterator 的便利函数模板,拥有从参数类型推导的类型。能用于添加元素到容器 c 尾端的 std::back_insert_iterator 。原创 2024-06-18 08:30:00 · 698 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 用于在容器尾部插入的迭代器适配器 (二)
不做任何事,提供此函数以满足遗留输出迭代器 (LegacyOutputIterator) 的要求。它返回迭代器自身,这使得可以用诸如 *iter = value 的代码输出(插入)值到底层的容器。不做任何事。提供这些运算符以满足遗留输出迭代器 (LegacyOutputIterator) 的要求。它们使得表达式 *iter++=value 和 *++iter=value 可用于输出(插入)值到底层的容器。原创 2024-06-17 08:30:00 · 849 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 用于在容器尾部插入的迭代器适配器 (一)
std::back_insert_iterator 后附到为之创建它的容器的遗留输出迭代器 (LegacyOutputIterator) 。凡在赋值迭代器时调用容器的 push_back() 成员函数(无论是否解引用)。自增 std::back_insert_iterator 是无操作。原创 2024-06-16 22:33:24 · 858 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 创建拥有从实参推出的类型的 std::move_iterator
make_move_iterator 是对给定迭代器 i 构造类型从参数类型推出的 std::move_iterator 的便利函数模板。原创 2024-06-15 23:22:50 · 704 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 解引用结果为右值引用的迭代器适配器(四)
比较底层迭代器。返回增加了 n 的 it 。返回二个迭代器适配器间的距离。原创 2024-06-14 08:30:00 · 595 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 解引用结果为右值引用的迭代器适配器(三)
返回到当前元素的右值引用或指针。返回在指定相相对位置的引用。自增或自减迭代器。1-2) 分别前自增或前自减一。3-4) 分别后自增或后自减一。5-6) 分别返回前进 n 或 -n 个位置的迭代器。7-8) 分别令迭代器前进 n 或 -n 个位置。原创 2024-06-13 08:30:00 · 730 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 解引用结果为右值引用的迭代器适配器(二)
构造新的迭代器适配器。对底层迭代器赋 other 的底层迭代器的值,即 other.base() 。访问底层迭代器原创 2024-06-12 08:30:00 · 709 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 解引用结果为右值引用的迭代器适配器(一)
std::move_iterator 是准确表现为底层迭代器(必须至少是一个遗留输入迭代器 (LegacyInputIterator) )的迭代器适配器,除了解引用会将底层迭代器返回的值转换为右值。若此迭代器用作输入迭代器,则效果是值被移动,而非复制。原创 2024-06-11 08:30:00 · 779 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 逆序遍历的迭代器适配器 (五)
比较底层迭代器。考虑到迭代器顺序是逆向的,而应用逆向比较。参数lhs, rhs - 要比较的迭代器适配器 返回值1) lhs.base() == rhs.base()2) lhs.base() != rhs.base()3) lhs.base() > rhs.base()4) lhs.base() >= rhs.base()5) lhs.base() < rhs.base()6) lhs.base()原创 2024-06-10 08:30:00 · 1013 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 逆序遍历的迭代器适配器 (四)
自增或自减迭代器。应用逆运算到底层迭代器,因为逆序。1-2) 分别前自增或前自减一。3-4) 分别后自增或后自减一。5-6) 分别返回前进 n 或 -n 个位置的迭代器。7-8) 分别令迭代器前进 n 或 -n 个位置。原创 2024-06-09 08:30:00 · 835 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 逆序遍历的迭代器适配器 (三)
返回底层迭代器。即 std::reverse_iterator(it).base() == it 。底层迭代器指代(从 std::reverse_iterator::iterator_type 视角的) reverse_iterator 当前所指元素的下一个元素。即 &*(rit.base() - 返回指向 current 前一元素的引用或指针。1) 等价于 Iter tmp = current; return *--tmp;2) 等价于 std::addressof(operator*()) 。原创 2024-06-07 08:30:00 · 1049 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器- 逆序遍历的迭代器适配器 (二)
构造新的迭代器适配器。1) 默认构造函数。值初始化底层迭代器。若且唯若值初始化的底层迭代器有受定义行为,产生的迭代器上的操作才一样有受定义行为。2) 初始化底层迭代器为 x 。3) 以 other 的底层迭代器初始化底层迭代器。对底层迭代器赋 other 的底层迭代器的值,即 other.base() 。原创 2024-06-06 08:30:00 · 827 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器适配器 - 逆序遍历的迭代器适配器
std::reverse_iterator 是一个反转给定迭代器方向的迭代器适配器。换言之,提供双向迭代器时, std::reverse_iterator 产生一个新的迭代器,它从底层的双向迭代器所定义的序列的末尾移动到开端。原创 2024-06-05 08:30:00 · 1065 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器原语-用于指示迭代器类别的空类类型
input_iterator_tag 对应 遗留输入迭代器output_iterator_tag 对应 遗留输出迭代器 forward_iterator_tag 对应 遗留向前迭代器 bidirectional_iterator_tag 对应 遗留双向迭代器 random_access_iterator_tag 对应 遗留随机访问迭代器原创 2024-06-04 08:30:00 · 965 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器原语-用于简化简单的迭代器的必要类型定义的基类
std::iterator 是提供以简化迭代器所要求类型定义的基类。原创 2024-06-03 08:30:00 · 336 阅读 · 0 评论 -
C++标准模板(STL)- 迭代器库-迭代器原语-为迭代器各项性质提供统一接口
std::iterator_traits 是类型特性类,为迭代器类型的属性提供统一的接口,使得能够仅针对迭代器实现算法。该类定义了如下类型,与 std::iterator 中的类型定义相对应:difference_type - 可用来标识迭代器间距离的有符号整数类型value_type - 迭代器解除引用后所得到的值的类型。对于输出迭代器,该类型为 void 。pointer - 指向被迭代类型 (value_type) 的指针reference - 被迭代类型 (value_type) 的引原创 2024-06-02 08:30:00 · 1609 阅读 · 0 评论