当前位置: 首页 > news >正文

中国建设安全监理协会网站年轻的儿媳

中国建设安全监理协会网站,年轻的儿媳,收录优美图片app,黄山网站建设黄山std::ranges::views::counted 基本概念 1. 功能 创建子范围视图:根据给定的迭代器和元素数量,创建一个包含 N 个连续元素的视图。惰性求值:不复制元素,直接引用原始数据。兼容性:支持所有满足 std::input_iterator …

std::ranges::views::counted

基本概念

1. 功能
  • 创建子范围视图:根据给定的迭代器和元素数量,创建一个包含 N 个连续元素的视图。
  • 惰性求值:不复制元素,直接引用原始数据。
  • 兼容性:支持所有满足 std::input_iterator 的迭代器类型。

语法与参数

1. 语法
auto counted_view = std::ranges::views::counted(iterator, count);

 

  • iterator:起始迭代器。
  • count:子范围包含的元素数量(必须非负)。

示例

示例 1:处理数组
#include <iostream>
#include <ranges>int main() 
{int arr[] = {1, 2, 3, 4, 5};// 从第2个元素开始,取3个元素auto view = std::views::counted(arr + 1, 3);for (int num : view) {std::cout << num << " "; // 输出:2 3 4}
}
示例 2:处理容器
#include <iostream>
#include <ranges>
#include <vector>int main() 
{std::vector<int> data = {10, 20, 30, 40, 50};// 从第3个元素开始,取2个元素auto it = data.begin() + 2;auto view = std::views::counted(it, 2);for (int num : view) {std::cout << num << " "; // 输出:30 40}
}
示例 3:与其他视图适配器组合
#include <iostream>
#include <ranges>
#include <vector>int main()
{std::vector<int> data = {1, 2, 3, 4, 5};// 取前3个元素,再过滤偶数auto view = std::views::counted(data.begin(), 3)| std::views::filter([](int x) { return x % 2 != 0; });for (int num : view){std::cout << num << " "; // 输出:1 3}
}
示例 4:处理输入迭代器
#include <iostream>
#include <ranges>
#include <sstream>
#include <iterator>int main() 
{std::istringstream iss("1 2 3 4 5");auto input_it = std::istream_iterator<int>(iss);// 从输入流迭代器开始,取3个元素auto view = std::views::counted(input_it, 3);for (int num : view) {std::cout << num << " "; // 输出:1 2 3}
}

注意事项

  1. 迭代器有效性

    • counted_view 是原始范围的视图,不拥有数据。确保底层数据在视图使用期间有效。
    • 若迭代器是悬空引用(如指向已销毁的容器),行为未定义。
  2. 数量限制

    • count 必须是非负整数,否则行为未定义。
    • 若 count 超过实际剩余元素数量,视图会以实际剩余元素为界。

与 take_view 的区别

| 特性 |                       counted_view                                 | take_view | 

参数类型 |             迭代器 + 元素数量                              范围 + 元素数量 | | 

适用场景 | 已知起始迭代器但无完整范围时                     直接操作现有范围时 | | 

典型用例 | 处理迭代器来自非范围上下文(如指针)       从已有范围开头截取子范围 |


总结

  • 核心用途:基于迭代器和数量快速创建子范围视图。
  • 适用场景
    • 处理原始指针或迭代器(如 C 风格数组)。
    • 与其他视图适配器组合使用。
    • 需要精确控制起始位置和元素数量的场景。
http://www.dtcms.com/a/524861.html

相关文章:

  • 网站网站到底怎么做个人代运营一般怎么收费
  • segformer算法——Mix-FFN详细讲解
  • 高精度算法全解析:从原理到实现
  • 参考线模块(上)
  • 鸿蒙Next图片开发指南:从解码、处理到接收的完整实践
  • 2025年第六届MathorCup大数据竞赛B题超详细解题思路
  • How to Write Hotkeys(如何编写热键)
  • 基于python语音信号的抑郁症识别模型设计与应用
  • 基于python语音信号的呼吸道疾病诊断模型设计
  • 西城网站建设余姚电商交易网站建设
  • 【交换机工作原理深度解析:从基础架构到前沿技术】
  • 学校培训网站建设网页设计师培训无锡
  • 「用Python来学微积分」12. 无穷小量和无穷大量
  • Elasticsearch从入门到进阶——搜索优化原理
  • 农田、果园与灌区气象监测的技术应用与实践价值
  • php做网站好吗wordpress博客非插件
  • 继承(2),咕咕咕!
  • C++编程技巧和规范_9_引用计数解析
  • android11禁止安装apk
  • 深入了解linux网络—— 自定义协议(下)
  • 金麦建站官网成都视频剪辑培训
  • 【C++闯关笔记】详解多态
  • 数据库技术指南(二):MySQL CURD 与高级查询实战
  • 用mvc做网站报告做做做网站
  • 设置一个自定义名称的密钥,用于 git 仓库上下传使用
  • MAC Flood与ARP Flood攻击区别详解
  • 高兼容与超低延迟:互联网直播点播平台EasyDSS直播服务如何成为直播点播应用的“技术底座”?
  • MongoDB 集群优化实战指南
  • wordpress网站速度检测医院做网站需要多少钱
  • iOS 26 查看电池容量与健康状态 多工具组合的工程实践