STL Array、ForwardList源码剖析

STL Array、ForwardList源码剖析

参考文章: https://blog.csdn.net/weixin_45389639/article/details/121618243

array 源代码

template<typename _Tp,std::size_t _Nm>
struct array
{typedef _Tp value_type;typedef _Tp* pointer;typedef value_type* iterator;// Support for zero-sized arrays mandatoryvalue_type _M_instance[_Nm?_Nm:1];iterator begin(){return iterator(_M_instance[0]);}iterator end(){return iterator(_M_instance[_Nm]);}...
};

array的使用

array不可以扩充,必须指定大小

array<int,10> arr;
auto it = arr.begin();
//array<int,10>::iterator it = ...
it += 3;
cout << *it << endl;

array实际是个数组
在C++11中,新增的一种容器std::array,和我们平常所使用的array操作类似,和vector动态可扩容不同它是静态不可扩容的。

只要是连续空间迭代器不需要额外设计成一个class,
array的迭代器是一个指针(萃取)
在这里插入图片描述

forward_list容器

​ forward_list 也是C++11提供的容器,和list容器不同,它是单项链表,比起需要每个Node节点需要存储next和pre节点的list。forward_list只需要存储next节点,forward_list会更加轻量级。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/640798.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins CI/CD 持续集成专题一 Jenkins的安装和配置

一 jenkins 官方教程 安装Jenkins 二 安装 2.1 安装方式一 通过安装包的package方式安装 第一步下载链接&#xff1a; Download the latest package 第二步操作方式&#xff1a;打开包并按照说明操作即可安装 2.2 安装方式二 brew安装 第一 安装最新版本jenkins brew in…

ScanNet 数据集常见文件的作用极其读取方式

ScanNet 数据集是一个大规模的 RGB-D 视频数据集&#xff0c;它包含了丰富的三维场景理解任务所需的数据&#xff0c;如三维物体分类、语义体素标签和 CAD 模型检索等。数据集中的每个文件都有特定的作用&#xff0c;以下是一些常见文件及其作用的解释&#xff1a; _vh_clean.p…

iPerf 3 测试UDP和TCP方法详解

文章目录 前言一、What is iPerf / iPerf3 ?二、功能1. TCP and SCTP2. UDP3. 其他 三、 Iperf的使用1.Iperf的工作模式2. 通用指令3. 服务端特有选项4. 客户端特有选项5. -t -n参数联系 四、Iperf使用实例1. 调整 TCP 连接1. 1TCP 窗口大小调节1. 2 最大传输单元 (MTU)调整 2…

JsonPath实战

概述 JsonPath&#xff0c;GitHub是一种简单的方法来提取给定JSON文档的部分内容&#xff0c;提供类似正则表达式的语法来解析JSON文档。 特性 入门 引入如下Maven依赖&#xff1a; <dependency><groupId>com.jayway.jsonpath</groupId><artifactId&…

美国RAKSmart服务器性能科普

当我们谈论服务器性能时&#xff0c;无疑会涉及多个维度&#xff0c;包括存储能力、网络连接、稳定性、管理界面以及安全性等。在这篇科普文章中&#xff0c;我们将深入探讨美国RAKSmart服务器的性能特点。 首先&#xff0c;RAKSmart服务器在存储和扩展性方面表现出色。它们配备…

Vs Code npm install 报错解决方法

用的人家的前端框架发现是封装过的&#xff0c;要修改人家前端的话还得把前端源码放在Vs Code 上运行&#xff0c;后端放在IDEA上运行&#xff0c;然后前后端并行开发&#xff0c;在配置前端环境时遇到&#xff1a; npm install 这个的原因是我把node下载到D盘了权限不够框框爆…

Mysql 、Redis 数据双写一致性 更新策略与应用

零、important point 1. 缓存双写一致性问题 2. java实现逻辑&#xff08;对于 QPS < 1000 可以使用&#xff09; public class UserService {public static final String CACHE_KEY_USER "user:";Resourceprivate UserMapper userMapper;Resourceprivate Re…

C++中的queue(容器适配器)

目录 一、成员函数 一、构造函数 二、入栈 push 三、出栈 pop 四、判空 empty 五、队列大小 size 六、取队头元素 front 七、取队尾元素 back 八、入栈 emplace 九、交换函数 swap 二、非成员函数重载 一、关系运算符重载 二、交换函数 swap C中的queue不再是容…

AWD线下攻防万字最完整战术(记第一届“长城杯”半决赛战术)

目录 准备阶段 1.登录比赛平台&#xff08;获取资产&#xff09; 查看账号账号修改 服务器SSH口令mysqlWEB服务口令(后台密码)数据库后台管理员密码 账号用户检查 2.dump源码&#xff08;方便应急响应恢复靶机&#xff09; 网站源码备份 压缩文件解压文件备份到服务器本地上传…

Google Ads广告为Demand Gen推出生成式AI工具,可自动生成广告图片

谷歌今天宣布在Google Ads广告中为Demand Gen活动推出新的生成人工智能功能。 这些工具由谷歌人工智能提供支持&#xff0c;广告商只需几个步骤即可使用文本提示创建高质量的图片。 这些由人工智能驱动的创意功能旨在增强视觉叙事能力&#xff0c;帮助品牌在YouTube、YouTube…

Webpack-

定义 静态模块&#xff1a;指的是编写代码过程中的html&#xff0c;css&#xff0c;js&#xff0c;图片等固定内容的文件 打包&#xff1a;把静态模块内容压缩、整合、翻译等&#xff08;前端工程化&#xff09; 1&#xff09;把less/sass转成css代码 2&#xff09;把ES6降级…

1.基于Springboot对SpringEvent初步封装

一&#xff1a;前置知识 Spring Event是Spring框架提供的一种事件机制&#xff0c;用于处理组件之间的通信。在复杂的系统中&#xff0c;模块或组件之间的通信是必不可少的。Spring Event可以用于以下场景&#xff1a; 1.系统间解耦&#xff1a;模块或组件之间通过事件进行通…