STL Array、ForwardList源码剖析-程序员宅基地

技术标签: c++  stl  开发语言  

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 mandatory
	value_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会更加轻量级。

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43692030/article/details/138092578

智能推荐

如何批量归类文件,按自己批定位置保存_文件批量归类-程序员宅基地

文章浏览阅读873次。在表格A列上填写数字,数字顺序要从大到小填写进去 ,然后再输入公式=”按文件名称归类<>将文件名称:[{包含}]关键字:[{“&A1&”}]的文件移动到目标文件夹:[{F:\A\新建文件夹_”&A1&”}],执行前不删除原目标文件夹中的文件”。先来给大家看下目前文件是这样的,一个文件夹里面保存是图片 ,另一个文件夹保存是文档,我是需要一个图片对应一个文档,保存在同一个文件夹中。步骤5选下任务名称:按文件名称归类,将文件名称包含“41”文件“移动”目标文件夹:选择路径,再点添加本任务。_文件批量归类

Raft协议-程序员宅基地

文章浏览阅读221次。Raft协议_raft协议

程序员编程艺术:第三章、寻找最小的k个数_e:t∵n“?。‘:1;。::1f-程序员宅基地

文章浏览阅读10w+次,点赞25次,收藏277次。程序员编程艺术:第三章、寻找最小的k个数作者:July。时间:二零一一年四月二十八日。致谢:litaoye, strugglever,yansha,luuillu,Sorehead,及狂想曲创作组。微博:http://weibo.com/julyweibo。出处:http://blog.csdn.net/v_JULY_v。----------------------------------前奏_e:t∵n“?。‘:1;。::1f

自己动手写个聊天机器人吧_聊天机器人 开源-程序员宅基地

文章浏览阅读161次。自己动手写个聊天机器人吧_聊天机器人 开源

PostgreSQL数据库管理 第二章体系结构_tablespace location should not be inside the data -程序员宅基地

文章浏览阅读1.6k次。PostgreSQL数据库管理第二章体系结构概述PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)。支持丰富的数据类型(如JSON和JSONB类型,数组类型)和自定义类型。PostgreSQL内存页面的默认大小是8kB。PostgreSQL有以下主要特性:1良好支持SQL语言,支持ACID、关联完整性、数据库事务、Unicode多国语言。2高并发设计,读和写互不阻塞3 支持大量类型的数据库模型:关系型,文档型(如JSON和J._tablespace location should not be inside the data directory

实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出9*9口诀表,输入12,输出12*12的乘法口诀表。_pta要求实现一个函数,打印乘法口诀表,输入正整数n(9>=n>=1),输出n行口诀表,每个等-程序员宅基地

文章浏览阅读184次。#define _CRT_SECURE_NO_WARNINGS#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;void mul(int x){ int i = 0; int j = 0; for (i = 1; i &lt;= x; i++){ for (j = 1; j &lt;= i; j++){ printf(" %d*..._pta要求实现一个函数,打印乘法口诀表,输入正整数n(9>=n>=1),输出n行口诀表,每个等

随便推点

【Unity Shaders】Reflecting Your World —— 在Unity3D中创建一个简单的动态Cubemap系统...-程序员宅基地

文章浏览阅读225次。本系列主要参考《Unity Shaders and Effects Cookbook》一书(感谢原书作者),同时会加上一点个人理解或拓展。这里是本书所有的插图。这里是本书所需的代码和资源(当然你也可以从官网下载)。========================================== 分割线============================..._unity 怎么动态换cubemap

数据库----数据更新_当修改reader表元组的rno时,级联修改loan表中该读者的借阅记录。 (2)当删除reader-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏8次。实验目的熟悉并掌握创建表,插入记录,查询记录,删除记录,修改记录。创建索引,删除索引。创建视图,使用视图,删除视图。实验内容仍然基于上次课程建立的小型图书借阅系统。如果使用实验室的机器完成实验,首先重做上次课的步骤1-4建立相应数据库。实验步骤(以用户CC的身份建立连接,并在此连接下执行后面的操作。)1、 查询记录:在Reader表中查询直接上司是“李四”的员工的名字SELECT rname from reader where rboss=’李四’;2、 修改记录:在Reader_当修改reader表元组的rno时,级联修改loan表中该读者的借阅记录。 (2)当删除reader

java毕业设计校园闲置物品交易平台mybatis+源码+调试部署+系统+数据库+lw-程序员宅基地

文章浏览阅读515次。java毕业设计校园闲置物品交易平台mybatis+源码+调试部署+系统+数据库+lw。springboot基于SSM框架的项目实训管理系统设计与实现。springboot基于JSP的企业办公管理系统设计与实现。ssm+sqlserver海城同泽中学图书仓库管理系统。ssm基于Web的医学院校大学生就业信息管理系统。ssm+sqlserver精品旅游项目管理系统。ssm基于HTML的寿光农产品的资源展示平台。ssm基于Java的摄影网上预约管理系统。ssm基于JavaWeb的好好吃查询系统。

转载 17.C++-string字符串类(详解)-程序员宅基地

文章浏览阅读368次。在C++ 中新增了一个字符串类型 string。比较与C语言只能用字符数组来表达字符串,大大提高了字符串操作的简便性。而且string也比较常用,但是对于不熟悉的人来说它的很多功能我们都不了解。我是想写写自己对使用string的一些感悟的,无奈下面这篇博客太优秀。有一定C++基础更能理解作者所写。转自:https://www.cnblogs.com/lifexy/p/8642163....

【ZYNQ入门】第六篇、ZYNQ驱动SD卡读取TXT文本和BMP图片_zynq存储数据-程序员宅基地

文章浏览阅读1.3k次,点赞25次,收藏27次。ZYNQ驱动SD卡读取TXT文本和BMP图片的原理_zynq存储数据

RUN-XGBOOST回归预测 | Matlab 龙格库塔优化xgboost回归预测_matlab人口预测模型龙格库塔函数-程序员宅基地

文章浏览阅读97次。在机器学习和数据科学领域,回归预测是一项重要的任务。通过建立数学模型,我们可以根据已有的数据来预测未知数据的结果。XGBoost是一种流行的机器学习算法,它在回归预测中表现出色。本文将介绍如何使用龙格库塔算法RUN来优化XGBoost,以实现更精确的数据回归预测。首先,让我们了解一下XGBoost和龙格库塔算法RUN的基本概念。XGBoost是一种基于梯度提升树的机器学习算法。它通过迭代地训练多个弱学习器,然后将它们组合成一个强学习器。_matlab人口预测模型龙格库塔函数

推荐文章

热门文章

相关标签